一、如何实现的
1.String是由final修饰的
2.String实际上是由一个char数组实现的,而这个char数组也是由final修饰的(同时自然也是私有的)
3.String的各个方法中没有暴露内部成员字段,没有提供直接改变数组内容的机会
这样一来,无法直接改变String,也无法改变char数组的地址指向,也无法直接改变char数组的内容,这样String就是真正的“不可变”了。
二、为何这样设计
最简单来讲就是安全,Java语言在设计之初就将安全问题看的非常重要。
在多线程,String做key时等等情况下,String不可变的特性极大的方便了我们的编程,同时提高了程序的安全性。
String的不可变性
最新推荐文章于 2021-08-26 16:40:04 发布