String 类的字段,除了 hash 之外都声明为 final。所以,严格来说,Java 的字符串并不是不可变的。不过,hash 字段缓存的值是根据其他字段计算而来的,而这些字段的值都是不可变的,因此,只要选定了字符串的内容,那么表现出来的行为就像是不可变的一样。具有这种特性的类称为事实不可变的类——现实中很少见到这种类,程序员往往可以忽略真正不可变的数据和事实不可变的数据之间的区别。
本文分享自 作者个人站点/博客 前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!