一、概念
不可变对象:一旦该类被创建,其值不能被改变。
可变对象:创建后,其值可以被改变。
例:String和StringBuilder。前者是不可变的,对于每次String的修改,并不是修改内在成员的值,而是产生了一个新的String对象,且其值为修改后的值,然后引用之。后者是可变的,对于每次StringBuilder的修改,就是直接将该对象值进行修改。
//immutability
String str = "a";
str.concat("b");
//mutability
StringBuilder strb = new StringBuilder("a");
strb.append("b");
![](https://img-blog.csdnimg.cn/20210524144439577.png)