Middle
69
questionbank

Что такое ключевые слова final и finalize в Java, и в чем заключается их отличие?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

final - ключевое слово для обозначения неизменяемости:

  • Переменной: Ссылка или значение не может быть изменено после инициализации.
  • Метода: Метод нельзя переопределить в дочернем классе.
  • Класса: Класс нельзя наследовать.

finalize() - метод, вызываемый сборщиком мусора (Garbage Collector) перед удалением объекта из памяти. Он находится в классе Object и предназначен для освобождения внешних ресурсов.

Отличия:

finalfinalize()
Ключевое словоМетод
Обозначает неизменяемостьВызывается перед удалением объекта
Связан с объявлениемСвязан с жизненным циклом объекта
Применяется к переменным,Применяется только к объектам
методам, классам

Пример использования final:

java

Пример использования finalize():

java

Важно: Использование finalize() не рекомендуется в современном Java из-за непредсказуемого времени выполнения и потенциальных проблем с производительностью. Для управления ресурсами предпочтительнее использовать блоки try-with-resources.