Мне задали этот вопрос:
String s = "abc"; // creates one String object and one
// reference variable
In this simple case, "abc" will go in the pool and s will refer to it.
String s = new String("abc"); // creates two objects,
// and one reference variable*
На основании приведенных выше деталей, сколько объектов String и сколько ссылочных переменных было создано до оператора println в приведенном ниже коде?
String s1 = "spring ";
String s2 = s1 + "summer ";
s1.concat("fall ");
s2.concat(s1);
s1 += "winter ";
System.out.println(s1 + " " + s2);
Мой ответ был Результатом этого фрагмента кода является весна-зима весна-лето
Имеются две ссылочные переменные, s1 и s2. Всего было восемь объектов String. создается следующим образом: «весна», «лето» (потеряно), «весна-лето», «осень» (потеряно), «весна». осень »(потеряна),« весна лето весна »(потеряна),« зима »(потеряна),« весна зима »(на этом этапе« весна »потеряна).
Только два из восьми объектов String не потеряны в этом процессе.
Это правильно?