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

为什么说String是不可变的。

为什么说String是不可变的。

摇曳的蔷薇 2018-07-04 14:22:07
String a = "hello";System.out.println(a);a = " world!!!";System.out.println(a);输出一个是 hello 一个world!!!为什么说String 是不可变的。
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

谁说string不可变的?应该是这句话不完整吧?string类型是值类型,通过重新赋值是可以改变值的,具体说,string定义成a就是在栈中开辟了一个空间,= "hello"将a栈指向了值为hello的堆,当你执行a = " world!!!";的时候,a栈重新指向了值为world!!!的堆,释放了值为hello的堆。就是在栈中的a地址没有变,指定的值变了。你说的string不变是这个意思吧

查看完整回答
反对 回复 2018-07-16
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

第二次给a赋值时,前面的值被覆盖了,所以输出world!!!。string不可变指的是string对象(hello)不可变。

查看完整回答
反对 回复 2018-07-16
  • 2 回答
  • 0 关注
  • 128 浏览

添加回答

举报

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