Чем отличается 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 или нет.

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *