字符串不可变性

字符串不可变性

http://img1.sycdn.imooc.com/climg/59e5a50c00014e4a03820038.jpg

第二句话,既然修改指的是创建了新的对象,为什么说所指向的内存空间不变呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

s1="imooc"+s1;s1的值发生变化是通过赋值运算发生的变化,并不是自动变化的, 因此说它指向的内存空间不变;通过赋值运算使得s1指向了一个新的内存空间,也就变为了一个新的对象。你可以再学习一下这一章节 。祝学习愉快~

  • 百兽凯多00 提问者 #1
    非常感谢!
    2017-10-21 15:13:14
  • 老师,这个不可变性弄的我有点懵: 一个字符串被创建,没人去修改的话肯定不会自动变化呀 还有既然s1指向了新的对象,那为什么还说它所指向的内存空间不变呢?
    2018-03-21 14:54:49
  • 肯定要进行操作才能改变,这里是对比StringBuilder的对象,StringBuilder对象调用append()方法就会在原来字符串的基础上添加数据。而String类型的变量要通过赋值完成。关于内存空间不变的说法,是指对于这条语句s1="imooc"+s1;s1指向了一个新的对象,而不是之前的s1了。可以再看看视频。
    2018-03-21 16:22:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师