黑马程序员技术交流社区

标题: 下面2行代码执行后,原始的String对象中的内容有没有改变。 [打印本页]

作者: doctorli    时间: 2014-12-10 09:18
标题: 下面2行代码执行后,原始的String对象中的内容有没有改变。
  1. String s="Hello";
  2. s=s+"World";
复制代码

作者: Gyx    时间: 2014-12-10 09:31
没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。
作者: fatesabering    时间: 2014-12-10 10:16
没有,字符串最大的特点:一旦被初始化就不可以改变。改变的是指向原"Hello"这个对象的引用型变量s
作者: 菜鸟一号    时间: 2014-12-10 11:00
没有,是另外开辟一个空间的存放“Hello world”的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2