字符串不变性

1.声明一个字符串

String s = "abcd";

变量s存储字符串对象的引用,如下所示。
这里写图片描述

2.将一个字符串变量分配给另一个字符串变量

String s2 = s;

这里写图片描述

3.Concat字符串

当我们将字符串“ef”连接到s时

s = s.concat("ef");

s存储新创建的字符串对象的引用,如下所示。

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

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

猜你喜欢

转载自blog.csdn.net/sheshouzuomeiyou/article/details/82620305