Java Core senior

Почему final-поля и constructor injection — стандарт Senior?

Ответ

Иммутабельность зависимостей — основа thread-safe сервиса. После создания объекта его зависимости НЕ должны меняться. final гарантирует это на уровне компилятора. Конструктор делает зависимости явными — открыл класс и сразу видишь, от чего он зависит, и это легко проверить.

Разбор: Стандарт — иммутабельность зависимостей: после создания singleton-сервиса его зависимости не должны меняться, и final это гарантирует на уровне компилятора, что и лежит в основе thread-safety. Конструктор делает зависимости явными и проверяемыми. Дистракторы искажают семантику final: он не вводит синхронизацию/монитор, не про кеширование в регистрах и тем более не заставляет Spring пересоздавать singleton-бин.

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

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