Встречается на собеседованиях • сегодня
Гарантировано ли присваивание строке значения из String Pool
При использовании литералов строк Java гарантированно помещает их в String Pool и возвращает ссылку на существующий объект при повторном использовании того же литерала. Однако при создании строк через new String() или динамически (например, конкатенацией) объект создается в куче, даже если такое же значение уже есть в пуле.
Пример:
java
String s1 = "hello"; // гарантированно из пула
String s2 = "hello"; // та же ссылка, что и s1
String s3 = new String("hello"); // новый объект в куче
String s4 = s3.intern(); // принудительно помещаем в пул и получаем ссылку
System.out.println(s1 == s2); // true
System.out.println(s1 == s3); // false
System.out.println(s1 == s4); // trueДля гарантированного получения строки из пула используйте метод intern(), но это может негативно сказаться на производительности.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы