黑马程序员技术交流社区

标题: 关String的问题 [打印本页]

作者: 闫玉泉    时间: 2012-2-27 22:45
标题: 关String的问题
本帖最后由 闫玉泉 于 2012-2-28 01:16 编辑

“这个String类提供了数值不可改变的字符串。” 这句话什么意思? String对象一但赋值就不能改变了吗? 我自己写了一个程序可以改变啊! 求解释!
作者: 蒙武辉    时间: 2012-2-27 23:07
在Java中使用字符串有一个非常重要的规则必须记得,一个字符串对象一旦被配置,它的内容就是固定不可变的。例如下面这个声明:
String str = "caterpillar";
这个声明会配置一个长度为11、内容为caterpillar的字符串对象,您无法改变这个字符串对象的内容。不要以为下面的语句就是改变一个字符串对象的内容:
String str = "Just";
str = "Justin";
事实上在这个程序片段中会有两个字符串对象,一个是Just字符串对象,长度为4;一个是Justin字符串对象,长度为6,两个是不同的字符串对象。您并不是在Just字符串后加上in字符串,而是让str名称引用自Justin字符串对象
作者: 冯兵兵    时间: 2012-2-27 23:34
String str = "abc";
str = new String("hehe");
当执行到第一句代码时,内存中产生了一个字符串对象 "abc",并将其引用赋给str。
当执行到第二句代码时,内存中又产生了一个字符串对象 "hehe",并将其引用赋给了str。
所以改变的只是引用而已,而并没有改变字符串 "abc"的内容,内存中产生了两个字符串对象。




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