java基础——不可变类型
immutable Objects就是那些一旦被创建,它们的状态就不能被改变的Objects,每次对他们的改变都是产生了新的immutable的对象。
String不可变性的好处
1.拷贝对象内容时,不用复制本身只是复制地址,需要的内存小,内存效率高;
2.多线程安全,避免了一个对象的值被其他进程改变。
3.字符串常量池的需要。
Integer variable = [-128,127] -该范围内的等号重新赋值(不是 new分配的),不会产生新的不可变对象,都是相等的。
String variable = new String("hello").intern(); -调用了intern永远指向常量池中的"hello"对象,地址是不变的,没有产生新的对象。