>>可变状态是至关重要的。 所有的并发问题都可以归结为如何协调并发状态的访问。可变状态越少,就越容易确保线程的安全性。 >>尽量将域声明成final类型,除非需要它们是可变的。 >>不可变对象一定是线程安全的。 不可变对象能极大地降低并发编程的复杂性,它们更为简单而且安全,可以任意共享而无需使用加锁 ...
分类:
其他好文 时间:
2016-08-06 20:23:19
阅读次数:
124
用类制造对象 之前我们学习了如何使用系统提供的类,比如String,来创建对象和使用对象。 尤其重要的是我们理解了对象变量和普通变量的不同,对象变量是对象的管理者而非所有者,所以涉及到赋值、函数参数传递和比较都与普通变量有所不同。 现在,我们要来尝试自己定义类,然后用自己定义的类来创建对象。 我们从 ...
分类:
其他好文 时间:
2016-08-06 09:54:54
阅读次数:
146
1、Java中的不可变对象和可变对象 (1)不可变类:当你获得这个类的实例的引用之后,你不可以改变这个实例的内容。比如:String,BigInteger,BigDecimal,还有基本数据类型的封装类,这些都是不可变类。用实例来调用方法时,不会改变里面的变量的值。代码: import java.m ...
分类:
编程语言 时间:
2016-08-04 00:00:31
阅读次数:
371
我们讲了,str是不变对象,而list是可变对象。 对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如: 而对于不可变对象,比如str,对str进行操作呢: 要始终牢记的是,a是变量,而'abc'才是字符串对象!有些时候,我们经常说,对象a的内容是'abc',但其实是 ...
分类:
其他好文 时间:
2016-08-02 01:10:42
阅读次数:
93
String:1:是对象不是原始类型.2:为不可变对象,一旦被创建,就不能修改它的值.3:对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.4:String 是final类,即不能被继承. StringBuffer:1:是一个可变对象,当对他进行修改的时候不会像St ...
分类:
其他好文 时间:
2016-08-01 19:35:09
阅读次数:
114
hibernate:开放源代码的对象关系映射框架 css样式:内联>内部>外部 final修饰的变量指的是引用不可变,对象的值是可以改变的。 面向对象基本特征: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的 ...
分类:
编程语言 时间:
2016-08-01 19:20:24
阅读次数:
163
0x00 简介 元组(tuple),相当于不可变的列表。元组通过圆括号中用逗号分割的项目定义。 特点:1、有序的集合;2、通过偏移来取数据;3、属于不可变对象,不能在于原地修改内容,没有排序。 P.S. 元组不可变的好处:保证数据的安全,比如将数据传给一个不熟悉的方法或者接口时,可以保证方法或者接口 ...
分类:
编程语言 时间:
2016-07-23 14:59:50
阅读次数:
126
类似其它的语言, Python 中的函数使用小括号( () )调用。函数在调用之前必须先定义。如果函数中没有 return 语句, 就会自动返回 None 对象。 Python 是通过引用调用的。 这意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响, 对不可变对象来说, 它 ...
分类:
编程语言 时间:
2016-07-14 13:18:08
阅读次数:
137
函数参数的传递和值返回
前言:
前面我们说的都是无参数无返回值的函数,实际程序中,我们经常使用到带参数有返回值的函数。
一、函数参数传递
1.形式参数和实际参数
函数的调用值把一些表达式作为参数传递给函数。函数定义中的参数是形式参数,函数的调用者提供给函数的参数叫实际参数。在函数调用之前,实际参数的值将被拷贝到这些形式参数中。
2.参数传递
先看一个例子:
void ...
分类:
编程语言 时间:
2016-07-12 15:32:23
阅读次数:
217
一、分析 String类字符串追加 当我们对字符串进行拼接时,String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是sealed 类,即不能被继承. string是String ...
分类:
其他好文 时间:
2016-07-08 23:20:29
阅读次数:
131