如何理解 String 的不可变性

我们知道 String 的值是存储在其内部的数组中:

 

private final char value[];

 

final 前面已经讲过,在这里表示 value[] 引用的这个数组不能改变,那么只能对这个数组的元素进行修改了。

同时数组的长度是不可变的,在创建时就固定了,所以只能对每个元素进行修改。

然而 value[] 是 private 的,其他类无法访问,而 String 类内部又没有声明相应的方法去修改,同时 String 类是 final 的,不能通过继承后添加方法来实现修改。

所以说 String 是不可变的。

 

posted @ 2022-04-18 13:16  Light_cone  阅读(120)  评论(0)    收藏  举报