为了账号安全,请及时绑定邮箱和手机立即绑定

如果java中的字符串是不可变的,为什么我可以这样做?

如果java中的字符串是不可变的,为什么我可以这样做?

MYYA 2023-08-09 16:19:00
我意识到变量名的 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。


查看完整回答
反对 回复 2023-08-09
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信