Чем отличается final finally finalize?

Эти три служебных слова относятся к разным разделам языка Java.

Метод finalise – это сборщик мусора, который вызывается Java машиной автоматически. При этом он не может быть вызван если есть ссылки на объект. Также виртуальная машина не может его вызвать более одного раза. При этом не гарантируется даже что он вообще будет запущен. Выполнять его может любой несинхронизированный поток. Начиная с версии Java 9 он помечается отметкой deprecated. Вместо него рекомендуется использовать классами, находящимися в пакете java.lang.ref. Можно также использовать блоки try — with — resource или try — finally.

Модификатор final может быть применён к переменным, методам и классам, чтобы объявить их как неизменяемые. Финализированные переменные и поля должны быть инициализированы при определении. Методы, определённые как final, невозможно переопределять в классах наследниках. Отмеченные модификатором final классы не могут иметь наследников.

Блок finally является необязательной конечной части конструкции try — catch — finally. В нём исключения, возникшие в блоке try, передаются в catch, после чего выполняются команды из блока finally. Причём команды, прописанные в блоке finally, выполняются независимо от того было выброшено исключение в блоке try или нет.

Проверьте себя после изучения темы

Бесплатный бот с тестами и практическими заданиями по Kotlin.

  • 22 бесплатных урока
  • Тесты к каждому уроку (всего 220 вопросов)
  • Задачи в рамках практики KotlinSprint (120 задач) и курсовой проект «Телеграм бот для изучения иностранных слов»
Начать обучение

Вам также может быть интересно

Узнать подробнее
Курс AndroidSprint

Глубокое обучение Android разработке с 0 до получения оффера. Только персональная практика с гарантией получения продуктового опыта.

Узнать подробнее
Узнать подробнее
Практикум по Kotlin

Изучение Котлин с 0 для профессиональной разработки. Личный ментор и разбор кода задач через git-flow.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Kotlin разработке

Самостоятельное освоение базы по языку для дальнейшего развития в Android/back-end разработке или в автотестах.

Узнать подробнее
Узнать подробнее
Onboarding в разработку

Полное обучение Android разработке с нуля до получения оффера. Делаем упор на практику и обратную связь

Узнать подробнее
Узнать подробнее
Обучающий Kotlin телеграм бот (с тестами)

Ваш основной инструмент для изучения основ языка. Бесплатные тесты и практика внутри.

Узнать подробнее
Узнать подробнее
Бесплатные уроки по Android разработке

Самостоятельное обучение разработке Андроид приложений. Понятные видеоуроки с разжеванными примерами.

Узнать подробнее
Узнать подробнее
Курс по UI/Unit тестированию

Для ручных тестировщиков, которые готовы осваивать автотесты с использованием актуального стека технологий. [в разработке]

Узнать подробнее
Узнать подробнее
Обучающий Android телеграм бот (с тестами)

Бесплатные теоретические тесты для самопроверки. А также информер на практических спринтах по Android.

Узнать подробнее