我意识到变量名的 hashCode 在“更新”后是不同的,但客观上是什么使得 String 对象实际上是不可变的?public static void main(String[] args) { String str = "AB"; System.out.println(str ); // AB str = str .replace(str .charAt(0) ,'W'); System.out.println(str );//WB }编辑1:hashCode基于变量的值,与内存地址无关。编辑2:我现在明白字符串是引用,而不是它本身的对象。
1 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
如果您查看 的文档replace()
,它会提到:
返回一个新字符串,该字符串是用 newChar 替换该字符串中所有出现的 oldChar 所得的结果。
因此,替换后的String是一个全新的String。
添加回答
举报
0/150
提交
取消