python中变量都被视为对象的引用。python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式。这种方式相当于传值和传引用的结合,如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递....
分类:
编程语言 时间:
2015-11-16 21:06:27
阅读次数:
237
字典{}元组()列表[]字典{}字典是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
原文:张纪刚链接:http://blog.csdn.net/zhangjg_blog/article/details/18319521什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状...
分类:
编程语言 时间:
2015-11-02 14:03:25
阅读次数:
307
python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容是可变的,例如list。而不可变的对象则相反,表示其内容不可变。不可变(immutable):int、字符串(string)、float、(数值型number)、元组(tuple)可变(mutable):字...
分类:
编程语言 时间:
2015-10-29 13:21:12
阅读次数:
272
转自:http://www.2cto.com/kf/201401/272974.html,感谢作者的总结什么是不可变对象? 众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变....
分类:
编程语言 时间:
2015-09-29 11:32:42
阅读次数:
202
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
摘要:1python中的一切事物皆为对象,并且规定参数的传递都是对象的引用。2 python参数传递都是“传对象引用”方式。实际上相当于c++中传值和传引用的结合。3 如果函数收到的是可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。不可变对象(比如数字、字...
分类:
编程语言 时间:
2015-09-20 19:15:45
阅读次数:
138