Общепринятый ответ на этот вопрос интервью состоит в том, что код создает два объекта. Но я так не думаю; Я написал код для подтверждения.
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. Что именно это означает?