Security middle

Что такое Иммутабельность как способ потокобезопасности?

Ответ

Immutable-объекты потокобезопасны по определению — нет shared mutable state, состояние не меняется после создания, поэтому гонок данных быть не может. Нет необходимости в synchronized/volatile. Примеры: String, Integer, LocalDate, record. Безопасность даёт именно отсутствие мутаций, а не синхронизация или копирование.

Разбор: Immutable-объект потокобезопасен потому, что его состояние не меняется после создания: нет разделяемого изменяемого состояния, поэтому гонок данных в принципе быть не может, и synchronized/volatile не нужны. Ловушка: безопасность достигается отсутствием мутаций, а не автоматической синхронизацией, копированием или volatile — JVM ничего подобного для immutable-классов не делает.

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

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