2019独角兽企业重金招聘Python工程师标准>>>
http://www.matrixq.net/2011/12/10469.html
最流行的Java面试题之一就是:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?
不可变对象,顾名思义就是创建后不可以改变的对象,典型的例子就是Java中的String类,
String s = "ABC";
s.toLowerCase();
.toLowerCase()并没有改变“ABC”的值,而是创建了一个新的String类”abc”,然后将新的实例的指向变量s。
相对于可变对象,不可变对象有很多优势。
当然也有其他方面原因,但是最Java把String设成immutable最大的原因应该就是效率和安全的。