一个人至少拥有一个梦想,有一个理由去坚强

心若没有栖息的地方,到哪里都是在流浪

java基础系列01 | [字符串和数组] 几幅图告诉你String变量的不变性

下面用几幅图来说明String 的不变性。

1、声明一个字符串

初始化一个字符串变量s

String s = "abcd";

这个变量s存储的是这个字符串对象的引用,箭头能被解释为“store reference of”

《java基础系列01 | [字符串和数组] 几幅图告诉你String变量的不变性》

 

2、分配字符串变量给另外一个字符串变量

String s2 = s;

s2存储的是和s相同的引用,因为它是相同的字符串对象。

《java基础系列01 | [字符串和数组] 几幅图告诉你String变量的不变性》

3.字符串连接:Concat()

s = s.concat("ef");

s指向了新创建的字符串对象。

《java基础系列01 | [字符串和数组] 几幅图告诉你String变量的不变性》

摘要:

总之,一旦在内存(堆)中创建了一个字符串,就无法更改它。String的所有方法都不会更改字符串本身,而是返回一个新的String。

如果我们需要一个可以修改的字符串,我们需要StringBufferStringBuilder。否则,垃圾收集会浪费很多时间,因为每次创建一个新的String。

 

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注