Java Core middle

Что такое String Pool и immutability?

Ответ

Pool в heap хранит уникальные литералы. new String("hi") — новый объект вне пула. intern() добавляет в пул. Immutability: безопасность, потокобезопасность, кэширование hashCode, переиспользование в пуле.

Разбор: String Pool находится в куче (с Java 7) и хранит уникальные строковые литералы; new String("hi") всегда создаёт отдельный объект вне пула, а intern() возвращает/добавляет ссылку из пула. Immutability даёт безопасность, потокобезопасность, кэширование hashCode (вычисляется один раз) и переиспользование в пуле. Ловушка: пул не в стеке, new в пул не попадает автоматически, а final у класса лишь запрещает наследование, а не отвечает за неизменяемость значения.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться