Java Core trainee
Почему String immutable?
Ответ
Четыре причины: 1) безопасность — строки передаются в конструкторы файлов, БД, сетевых соединений, изменение привело бы к уязвимостям; 2) потокобезопасность — можно шарить между потоками без синхронизации; 3) кэширование hashCode; 4) корректная работа String Pool.
Разбор: Неизменяемость String даёт безопасность (передача путей, URL, кредов), потокобезопасность без синхронизации, кэширование hashCode и корректную работу String Pool. Ловушка: final у класса лишь запрещает наследование, а не делает поля неизменяемыми; new-строки тоже immutable; а substring с Java 7+ как раз копирует массив, а не делит исходный.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.