Что такое Разница между synchronized-методом и synchronized-блоком?

Ответ

Метод захватывает this (для static — Class-объект). Блок — любой указанный объект. Блок обычно эффективнее.

Разбор: Нестатический synchronized-метод неявно захватывает монитор this, статический — монитор Class-объекта; synchronized-блок позволяет явно указать любой объект-монитор и сузить критическую секцию, поэтому обычно эффективнее. Ловушка в утверждениях, что блок блокирует весь класс или что метод и блок всегда берут один и тот же монитор — выбор монитора в блоке произволен.

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

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