如何理解 String 的不可变性
我们知道 String 的值是存储在其内部的数组中:
private final char value[];
final 前面已经讲过,在这里表示 value[] 引用的这个数组不能改变,那么只能对这个数组的元素进行修改了。
同时数组的长度是不可变的,在创建时就固定了,所以只能对每个元素进行修改。
然而 value[] 是 private 的,其他类无法访问,而 String 类内部又没有声明相应的方法去修改,同时 String 类是 final 的,不能通过继承后添加方法来实现修改。
所以说 String 是不可变的。

浙公网安备 33010602011771号