だから私はキャシー シエラの本から 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?
出力は春冬春夏で、2 つの参照変数がありますが、それで問題ありません。
次に、作成された 8 つの文字列オブジェクト (春、夏、春夏など) があり、それらを参照するものが何もないために失われたものを含みます。
ただし、最後の sysout からは何も含まれません。
私の質問は、コードの最後の行で、s1 と s2 がスペースで連結されているため、これも新しいオブジェクトを作成しないのですか? それとも、表示用に文字列バッファに渡され、新しいオブジェクトは作成されませんか?
これは明らかに非常に基本的なものであり、他の場所を調べましたが、これに直接答えるものはありませんでした。私の理解では、そこにも新しいオブジェクトが作成されるはずですが、試験のために確認する必要があります。考え?
前もって感謝します!