理解不了可变性的看这里!

来源:2-5 认识 Java 中的 StringBuilder 类

while__true

2019-02-21 14:54

https://img1.mukewang.com/5c6e49ba0001f96a09490296.jpg

因为String类是由final修饰的,所以是不可变的(详情可见:http://www.cnblogs.com/dolphin0520/p/3778589.html)。另外我们可以看到,在没有new新的String时,对原来的字符进行修改,String的hashCode值会改变。

https://img4.mukewang.com/5c6e4b4200013a1f09840269.jpg

而StringBuild的hashCode值不变。

由上我们可以看出,String类具有不可变性,其字符串发生改变后会创建新的位置来存储;而StringBuild和StringBuffer是在原有对象上进行修改,其位置不变.

写回答 关注

13回答

  • 180416
    2020-05-23 14:44:45

    好总结,mark下了

  • Mcat_m
    2020-04-22 09:45:44

    很不错 

  • 奶尤糯米团子
    2020-02-21 08:39:15

    想问一下String类对象即使前面不加final字符,本身也是final的对象吗?

    weixin...

    是的。

    2023-07-26 14:54:18

    共 1 条回复 >

  • 奶尤糯米团子
    2020-02-20 20:11:29

    请问即使String类对象不在前面加上final字符,本身也是final的是吗?

  • X01Wolverine
    2020-02-14 21:04:10

    搜嘎!


  • IEwuIL7
    2019-11-27 09:17:13

    感谢。

  • weixin_慕后端6541424
    2019-08-02 17:02:40

    非常感谢!

  • 拆鸡
    2019-07-31 16:17:54

    非常感谢


  • 完美二叉树
    2019-07-18 10:54:46

    感谢。

  • 数码世界
    2019-04-02 20:53:17

    感谢。

  • Miko米米
    2019-03-16 19:43:10

    豁然开朗!!非常感谢!

  • 慕容0586378
    2019-03-15 09:14:13

    感谢。

  • 一只喵的枕头
    2019-02-25 04:13:10

    挺好的解释, 懂了,谢谢

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题