不可变对象执行不可变拷贝(copy)就是浅拷贝如果执行拷贝时 只要有可变的无论是可变对象还是可变拷贝(mutableCopy)就是深拷贝只有源对象和副本对象都不可变才是浅拷贝,其它都是深拷贝!copy 创建的是不可变副本(NSString , NSArray, NSDictionary)mutabl...
分类:
其他好文 时间:
2016-01-25 21:17:18
阅读次数:
219
变量:对象的引用。变量是可变的。变量是无类型的(类似于void*),对象是有类型的。可变对象:list dict 对象的值可以改变不可变对象:int string numbers bool 对象的值在它被分配内存的那一刻起就不能改变。函数改不改变实参的值: python函数参数传递:引用传递。...
分类:
编程语言 时间:
2016-01-18 19:08:17
阅读次数:
142
非容器对象:NSStringNSMutableString不可变对象复制:copy是指针复制(浅拷贝);mutableCopy就是对象复制(深拷贝)。可变对象复制:都是深拷贝,但是copy返回的对象是不可变的。copy浅copy,不会产生新的地址,两个指针指向同一地址深copy,会产生新的地址,两个...
分类:
其他好文 时间:
2015-12-25 15:00:37
阅读次数:
162
首先,String和StringBuffer主要有2个区别:(1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值(2)String类对象的性能远不如...
分类:
其他好文 时间:
2015-12-23 10:40:56
阅读次数:
137
主要概念:可见性、重排序、失效数据、最低安全性、发布、逸出、线程封闭(Ad-hoc、栈封闭、ThreadLocal类)、不变性、Final域、事实不可变对象、1、在没有同步的情况下,编译器、处理器以及运行时等都可能对操作的执行顺序进行一些意想不到的调整。在缺乏足够同步的多线程程序中,要想对内存操作的...
分类:
编程语言 时间:
2015-12-15 06:20:51
阅读次数:
306
一、元组tuple特性1、有序集合2、通过偏移来取数据3、不可变对象,不能在原地修改内存,没有排序、修改等操作元组不可变的好处:保证数据的安全,比如我们传给一个不熟悉的方法,确保不会改变我们的数据从而导致程序问题。二、集合:集合是没有顺序的概念,所以不能用切片和索引操作1、创建集合:可变的set()...
分类:
编程语言 时间:
2015-12-11 23:54:30
阅读次数:
170
1.什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。 不能改变状态的意思是:不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型...
分类:
编程语言 时间:
2015-12-06 20:51:05
阅读次数:
259
字典{}元组()列表[]字典{}字典是python中唯一的映射类型(哈希表)字典的对象可变,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同的键值keys()或者values()返回键列表或者值列表items()返回包含键值对的元组定义方式:dic={‘name‘:‘sql‘,‘age‘:30,‘gender‘:‘m..
分类:
编程语言 时间:
2015-11-05 16:40:01
阅读次数:
257
对象的发布:使对象能够在当前作用域之外的代码中使用如何安全的发布对象?1:可变对象比如通过加锁的方式发布2:不可变对象可以随意的被发布可变对象必须通过安全的方式发布,这意味着发布和使用该对象的线程都必须使用同步.要安全的发布对象,对象的状态和对象的引用必须对其他的线程可见,常见的做法有:1:在静态初...
分类:
其他好文 时间:
2015-11-04 19:15:22
阅读次数:
169
拷贝分为深拷贝和浅拷贝 浅拷贝:不产生新的对象,直接指向原有对象深拷贝:产生新的对象,其内容是原有对象的内容拷贝:NSCopy、NSMutableCopyNSCopy拷贝出的结果是不可变对象,跟其接受类型没有关系,跟其传入类型也没有关系,NSMutablecopy拷贝的结果是可变对象,跟其传入的类型...
分类:
其他好文 时间:
2015-11-02 20:54:19
阅读次数:
167