1.首先从String类型的数据结构角度分析:
1.通过在eclipse编译器中进入String类型的源码可了解到其数据结构为:
“一个不可变的字符数组”(final修饰的数组,代表其内存地址不可变,但其内容可变)
当字符串保存时,其这个不可变的数组进行存储,其内存地址不可变,代表一直引用这个字符数组对象。
其次,它的访问修饰符为private:导致外界无法访问,干涉其内容
2.从String类型提供的方法分析
以String中的substring方法为例(下图为该方法的源码):
由图可见,方法产生的结果都是以产生一个新的字符串对象返回的,所以导致String无法通过方法直接改变
youtu