一、不可变类的设计
不可变类是线程安全的,不可变类设计有3个特征:
- 属性是final修饰的:保证了该属性在初始化后是只读的,不能修改。(happen-before-->final)
- 类是final修饰的:保证了类中的方法不会被重写,防止子类破坏不可变性。
- 保护性拷贝:保护性拷贝是指-->修改时新建一个对象,不使用原来的对象,保证了不共享变量。
二、常见的不可变类
- String
- 包裹类,如Integer
- StringBuffer
三、String的类的保护性拷贝举例
(1)字符串截断的保护性拷贝性