Что выведет код Junior String и пул строк спрашивают часто обновлено
Что выведет: пул строк и intern
Вопрос
Что выведет программа (Java 21)? Каждый вывод println с новой строки.
public class Main {
public static void main(String[] args) {
String a = "java";
String b = "ja" + "va";
String part = "ja";
String c = part + "va";
String d = new String("java");
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a == c.intern());
System.out.println(a == d);
System.out.println(a.equals(d));
}
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: true, false, true, false, true. "ja" + "va" склеивается компилятором и берётся из пула: true. part + "va" склеивается в рантайме, новый объект: false. intern() возвращает экземпляр из пула: true. new String всегда новый объект: false.
Что выведет
true
false
true
false
true
Разбор
"ja" + "va" склеивается компилятором и берётся из пула: true. part + "va" склеивается в рантайме, новый объект: false. intern() возвращает экземпляр из пула: true. new String всегда новый объект: false. По содержимому все равны: true.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.