/* * String是不可变(immutable)类,他的对象都是不可变对象 * 执行s+"world"之后, s不在指向"这个对象",而是指向另一个的对象 * 原来的那个对象还在,只是s不在引用他了 */ String s = "hello"; s= s+" world";//重新引用,会不会有两个值为"hello"对象呢s="hello";
1 回答
已采纳
onemoo
TA贡献883条经验 获得超454个赞
不会有两个值为"hello"对象。
像 "hello" 这种直接写出来的字符串字面量,在 Java 内部只会有一个 String 对象。比如:
String s1 = "justone"; String s2 = "just" + "one"; // 即便是用常量表达式方式构造出来的字符串也可以
"justone" 和 s1 及 s2 都是引用了同一个 String 实例。
但是,用其他方式构造出来的带同样字符串的 String 对象则不一定满足这个规则。 比如
String s3 = "just";
s3 + "one" 的结果也是 justone,但就不一定引用和上面同样的对象了。
添加回答
举报
0/150
提交
取消