不可变类
不可变类(Immutable class),指一个对象创建出来后,它的值就不能再修改。如Java的String:
public static void main(String[] args) {
String str = "hello";
// 并没有改变str值的内容,而是把新的引用(helloworld)赋值给了str
str += "world";
System.out.println(str);
}
- 这里并非修改了str的值,而是赋值了新的引用(很容易出现String可变的误区)
使用不可变类的优点
- 线程安全
- 节省内存
设计不可变类需要注意的点
- 类设计成final的,避免子类覆盖
- 不对外暴露修改内部成员的方法
- 对外暴露的访问成员变量的方法,保证不会修改到内部成员,比如使用clone(),或者集合对象的Collections.unmodifiablexxx() 方法