Встречается на собеседованиях • сегодня

Как объекты попадают в String Pool

В Java строковые литералы автоматически помещаются в String Pool при первом использовании. При вызове intern() строка также добавляется в пул, если её там ещё нет.

Пример:

java
String s1 = "hello"; // попадает в пул
String s2 = new String("hello"); // создается новый объект вне пула
String s3 = s2.intern(); // возвращает ссылку на строку из пула

System.out.println(s1 == s3); // true, т.к. ссылаются на один объект в пуле

text

Нюансы:
1. String Pool хранит только уникальные строки
2. `intern()` может быть дорогим по производительности
3. С Java 7 пул размещается в heap, а не в PermGen
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы