浅复制:只复制指向对象的指针,而不复制引用对象本身。计数器+1 ,就像比如retain深层复制:复制引用对象本身。计数器不变,产生新对象retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,引用计...
分类:
其他好文 时间:
2015-04-01 21:35:47
阅读次数:
162
不可变数组NSArray和可变数组NSMutableArray区别和用法...
分类:
编程语言 时间:
2015-04-01 17:53:00
阅读次数:
146
元组是不可变序列,通常用于存储异构数据的集合。range也是不可变序列,但只用于数字,通常用于for循环中。
构造元组
构造元组有以下方法:
1)用一对括号表示一个空元组:();
2)在单个元素后跟逗号表示单个元素的元组:a,或者(a,);
3)用逗号分隔的多个元素:a,b,c或者(a,b,c);
4)用tuple()或者tuple(iterable)构...
分类:
编程语言 时间:
2015-04-01 17:43:48
阅读次数:
178
1.如果类不可变,就设为final 。方法入参引用不可变也设为final。防止后续代码误改。
2.设计时,能够方便扩展而不用修核心代码。
如,设计一个远程调用框架,这时可以通过拦截器链来实现扩展功能。
项目中有一个job定时器业务,服务端负责生成job定时任务。客户端会有机子负责接收执行。服务器和客户端通过http来通信。
这时设计中,可以有一个统一拦截器入口,然后是一个调用链。核心...
分类:
其他好文 时间:
2015-04-01 15:30:46
阅读次数:
135
String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全)简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同...
分类:
其他好文 时间:
2015-04-01 12:54:15
阅读次数:
75
概述
Lua完全采用8位编码,Lua字符串中的字符可以具有任何数值编码,包括数值0。也就是说,可以将任意二进制数据存储到一个字符串中。Lua的字符串是不可变的值(immutable values)。如果修改,实质上是新建一个字符串。根据《Lua中数据类型的源码实现》中知道,在Lua中,字符串是自动内存管理机制所管理的对象,并且由联合体TString来实现存储字符串值的。下面将通过Lu...
分类:
其他好文 时间:
2015-03-31 22:17:19
阅读次数:
121
string是java中的字符串。String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。下面介绍java中的String与常量池。1. 首先String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null...
分类:
编程语言 时间:
2015-03-31 19:47:02
阅读次数:
118
不可变集合,顾名思义就是说集合是不可被修改的。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。 为什么要用immutable对象?immutable对象有以下的优点: 1.对不可靠的客户代...
分类:
其他好文 时间:
2015-03-31 16:14:53
阅读次数:
149
上一篇文章新手学JAVA(二)----String类与StringBuffer类的区别中了解到,String的值是不可变的,这就导致
每次对String的操作都会生成新的String对象,不仅效率低下,而且大量浪费有限的内存空间,StringBuffer是可变
类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象。
StringBuffer类和String...
分类:
编程语言 时间:
2015-03-30 16:20:52
阅读次数:
213
第一章1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置。第二章2.1 预定义类型或基本类型:C#语言的基本类型包括8种整数类型,2种用于科学计算的二级制浮点类型,1种用于金融计算的十进制浮点类型...