Java Core junior

final, finally, finalize — три разных слова?

Ответ

final: класс (нельзя наследовать), метод (нельзя переопределить), поле (нельзя переприсвоить). finally: блок try-catch-finally, выполняется ВСЕГДА, в том числе при return из try. finalize(): метод Object, вызывается GC недетерминированно перед удалением (deprecated).

Разбор: final ограничивает наследование/переопределение/переприсвоение, finally выполняется всегда (в том числе при return из try, отрабатывая до выхода), а finalize() — метод Object, вызываемый GC недетерминированно перед удалением (deprecated). Дистракторы вносят ложь: finally отрабатывает и при return; final List не делает содержимое неизменяемым; finalize — это не AutoCloseable.close() и его вызов не гарантирован даже при System.gc(); final применим и к классам.

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

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