Строка s = новая строка («xyz»). Сколько объектов было создано после выполнения этой строки кода?
Общепринятый ответ на этот вопрос интервью состоит в том, что код создает два объекта. Но я так не думаю; Я написал код для подтверждения.
public class StringTest {
public static void main(String[] args) {
String s1 = "a";
String s2 = "a";
String s3 = new String("a");
System.out.println("s1: "+s1.hashCode());
System.out.println("s2: "+s2.hashCode());
System.out.println("s3: "+s3.hashCode());
}
}
Выход:
Значит ли это, что был создан только один объект?
Подтвердите: у меня вопрос, сколько объектов было создано с помощью следующего кода:
String s = new String("xyz")
ВместоStringTest
код.
Вдохновленный @Don Branson, я отладил следующий код:
public class test {
public static void main(String[] args) {
String s = new String("abc");
}
}
И результат:
Идентификатор s равен 84, а идентификатор «abc» - 82. Что именно это означает?