Sobes.tech
Back to questions
Junior
172

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

Answer from AI

sobes.tech AI

В Java final и finalize — это разные понятия с разным назначением:

  • final — ключевое слово, которое используется для объявления:
    • Констант (переменных, которые нельзя изменить после инициализации).
    • Методов, которые нельзя переопределить в подклассах.
    • Классов, которые нельзя наследовать.

Пример:

final int x = 10; // x нельзя изменить
final class MyClass {} // класс нельзя наследовать
final void myMethod() {} // метод нельзя переопределить
  • finalize() — это метод класса Object, который вызывается сборщиком мусора перед удалением объекта из памяти. Он предназначен для освобождения ресурсов, но его использование не рекомендуется, так как вызов не гарантируется и может привести к непредсказуемому поведению.

Пример:

@Override
protected void finalize() throws Throwable {
    // очистка ресурсов
    super.finalize();
}

Отличия:

  • final — ключевое слово для контроля модификации кода.
  • finalize — метод для очистки перед сборкой мусора, устаревший и не рекомендуется к использованию.