Java Core trainee

Почему String immutable?

Ответ

Четыре причины: 1) безопасность — строки передаются в конструкторы файлов, БД, сетевых соединений, изменение привело бы к уязвимостям; 2) потокобезопасность — можно шарить между потоками без синхронизации; 3) кэширование hashCode; 4) корректная работа String Pool.

Разбор: Неизменяемость String даёт безопасность (передача путей, URL, кредов), потокобезопасность без синхронизации, кэширование hashCode и корректную работу String Pool. Ловушка: final у класса лишь запрещает наследование, а не делает поля неизменяемыми; new-строки тоже immutable; а substring с Java 7+ как раз копирует массив, а не делит исходный.

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

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