三张图就能彻底掌握Java字符串的不变性?来自国外著名java架构师的总结

这里有一组图来说明Java String的不变性。

1.声明一个字符串

以下代码初始化字符串s。
字符串 s = “ abcd” ;
在这里插入图片描述变量s存储字符串对象的引用,如下所示。箭头可以解释为“的商店参考”。

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

以下代码将s分配给s2。
字符串 s2 = s ;
在这里插入图片描述s2存储相同的参考值,因为它是相同的字符串对象。

3. Concat字符串

当我们将字符串“ ef”连接到s时,
s = s。concat (“ ef” );
在这里插入图片描述s存储新创建的字符串对象的引用,如下所示。
摘要
总之,一旦在内存(堆)中创建了字符串,就无法更改它。String的所有方法都不会更改字符串本身,而是返回一个新的String。
如果我们需要一个可以修改的字符串,则需要StringBuffer或StringBuilder。否则,由于每次创建新的String,都会浪费大量时间进行垃圾回收。这是使用StringBuilder的示例。
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。在这里插入图片描述

发布了38 篇原创文章 · 获赞 8 · 访问量 2718

猜你喜欢

转载自blog.csdn.net/zhaozihao594/article/details/103908178