Назад к вопросам
Junior
173
Что такое ключевые слова final и finalize в Java, и в чем их отличия?
Ответ от нейросети
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— метод для очистки перед сборкой мусора, устаревший и не рекомендуется к использованию.