31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有?没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hell...
分类:
编程语言 时间:
2015-09-22 23:35:13
阅读次数:
318
Guava学习笔记:guava的不可变集合不可变集合的意义不可变对象有很多优点,包括:当对象被不可信的库调用时,不可变形式是安全的;不可变对象被多个线程调用时,不存在竞态条件问题不可变集合不需要考虑变化,因此可以节省时间和空间。所有不可变的集合都比它们的可变形式有更好的内存利用率(分析和测试细节);...
分类:
其他好文 时间:
2015-09-22 21:47:21
阅读次数:
165
下面一段代码演示了可变与不可变默认参数的区别,通过查看内存地址以及每次函数调用之后的默认参数的变化,可以看出两段代码为什么会产生不同的结果。 #?-*-?coding:?cp936?-*-?
#?上面一句是为了中文编码问...
分类:
编程语言 时间:
2015-09-21 14:17:22
阅读次数:
156
ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型。也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两种的类型特点来命名的,大家爱叫啥就叫啥吧 o(╯□╰)o 。1.基本类型基本的数据类型有:`unde...
分类:
Web程序 时间:
2015-09-21 11:54:57
阅读次数:
212
字典和数组一样 分为可变和不可变的自己创建的一般为可变的(往里装数据)用别人的一般为不可变的(从中取数据)面试问题:字典当中的Key能写什么?一般我们会写一个字符串作为Key 答案是: 遵守NSCopy协议的任意对象 除了字符串 NSNumber也可以字典和数组可以互相嵌套字典(NSDictiona...
分类:
移动开发 时间:
2015-09-20 20:25:59
阅读次数:
144
摘要:1python中的一切事物皆为对象,并且规定参数的传递都是对象的引用。2 python参数传递都是“传对象引用”方式。实际上相当于c++中传值和传引用的结合。3 如果函数收到的是可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。不可变对象(比如数字、字...
分类:
编程语言 时间:
2015-09-20 19:15:45
阅读次数:
138
实际工作开发中,我们经常会使用到常量。我们常用的常量,比如:publicstaticfinalintAGE_OF_PERSON=18;常量的命名规则:所有单词的字母都是大写,如果有多个单词,那么使用下划线连接即可。在Java中声明final常量时都会加上static关键字,这是为什么?既然是final的不可变的,..
分类:
编程语言 时间:
2015-09-20 07:06:35
阅读次数:
237
1. 面试题:String,StringBuffer,StringBuilder的区别 ?答:String是字符串内容不可变的,而StringBuffer和StringBuilder是字符串内容长度可变的;StringBuffer是同步的,数据安全,效率低。StringBuilder是不同步的,数据...
分类:
编程语言 时间:
2015-09-19 22:31:56
阅读次数:
215
1.函数式编程思想:核心主体是函数,函数可以作为参数,返回值,具有高度不可变性,是以函数为主体,如果传入参数是相等的,那么返回结果注定是相等。2.面向对象编程思想:(1)封装:封装变化,可以做到重用,实现代码优雅简洁。 (2) 继承: 子类继承父类,实现子类可以继承父类的方法和属性,...
分类:
其他好文 时间:
2015-09-19 12:09:07
阅读次数:
169
一般来说分为栈、堆、静态变量存储区、全局变量存储区、代码区。前两个大家都懂的。通常将后三个合并称之为静态存储区,存储的是一些全局变量、静态变量、常量、执行代码等。在Objective-C中,不可变数组、不可变字典以及一些常量字符串,都是分配在这个区域的,我们先要明确这一点。所以在提到深浅拷贝的时候,...
分类:
其他好文 时间:
2015-09-17 11:54:56
阅读次数:
183