图解java String的不变性

1. 声明一个字符串

String s = “abcd”;
s存储的字符串的引用,下面的箭头就是存储引用的意思1

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

String s2 = s;

s2存储相同的引用值

2

3. 连接字符串

s = s.concat(“ef”);
s现在存储新字符串对象的引用

3

总结

字符串一旦在内存中创建,就不能改变。我们应该知道字符串的所有方法都不能改变它自己,而是返回一个新的字符串。

如果我们想要一个可变的字符串,我们应该使用StringBuffer 或者 StringBuilder。否则会浪费gc时间,应为每次都会创建新的字符串对象。

(转载本站文章请注明作者和出处 JavaRanger – javaranger.com ,请勿用于任何商业用途)

本文链接: http://www.javaranger.com/archives/2111 

发表评论

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

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>