Чем отличается 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 или нет.
Peer-to-peer собеседования
AI Sprints — обучение профессиям с ИИ
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить
AI Challenge — собери чат-бота за 5 дней
Бесплатный марафон по AI-инжинирингу. Cursor + OpenAI, 60 минут в день — без опыта в программировании. К пятнице у вас будет рабочий чат-бот с памятью в браузере.
- Практика с первого дня, без теории «в стол»
- Готовый проект в портфолио к концу недели
- Старт в любой день — учитесь в своём темпе