所以我正在为 Kathy Sierra 书中的 SCJP 学习。在字符串章节中,这是一个问题:
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat( "fall ");
s2.concat(s1);
s1 += "winter";
System.out.println(s1+" "+s2);
---------------------------
What's the output, and how many string objects and ref variables are created?
输出是春冬春夏,有两个参考变量,没问题。
然后它说创建了八个字符串对象(春季,夏季,春季夏季......等),包括由于没有引用它们而丢失的那些。
但是,它不包括上次 sysout 中的任何内容。
我的问题是,在最后一行代码中,由于 s1 和 s2 是用空格连接的,这不也会创建新对象吗?还是只是将其传递给字符串缓冲区进行显示,而不是创建新对象?
这显然是非常基本的,我在别处看了,但没有直接回答这个问题。据我了解,它也应该在那里创建新对象,但我需要确保考试!想法?
提前致谢!