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

java String类

java String类

慕斯王 2018-07-24 11:14:45
java String类中,String s = "abc";s = "d";我知道上面个s和下面个s的地址值不一样,但是怎么证明呢,我这样写,就相当于把上面s‘’abc‘’的地址覆盖了,那我怎么拿到第一个s的地址呢
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

要想获得直接的证据,可以用jmap等jvm调试工具dump内存,然后看看到对象的存储。不过根据java的语言规范,可以推断,比如用==号。
java不存在字符串“覆盖”一说,字符串是只读的。

查看完整回答
反对 回复 2018-08-11
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

第一个句话,创建了一个s的string对象,第二句把指针指向一个新地址,从代码角度来说,第一个地址已经被重新指向了,就是被覆盖了。打断点也是可以看的,去看看深入理解jvm虚拟机吧,会对你的疑惑有很全面的解释


查看完整回答
反对 回复 2018-08-11
  • 2 回答
  • 0 关注
  • 624 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号