AmazingCounters.com

图解字符串的不变性

原文链接:https://www.programcreek.com/2009/02/diagram-to-show-java-strings-immutability/

这里有一些图来说明java字符串的不变性

1. 声明一个字符串

下面的代码是,初始化字符串s:

String s = "abcd";

变量s存储字符串对象的引用,如下所示。箭头可以解释为“存储引用”:

 

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

下面的代码是,将s分配给S2:

String s2 = s;
S2存储相同的引用值,因为它是相同的字符串对象。
3.字符串连接
我们在字符串s的后面连接一个“ef”:
s = s.concat("ef");

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

总结:

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

如果我们需要一个字符串,可以修改,我们就需要StringBuffer或StringBuilder。否则,由于每次创建新字符串,将浪费大量时间用于垃圾收集。这是使用StringBuilder实例。

posted @ 2018-01-11 15:42  jacunjpg  阅读(138)  评论(0编辑  收藏