Junior — Middle
113
Wat is de rol van de finalize() methode in de klasse Object en wat is het doel ervan?
Antwoord van AI
sobes.tech AI
Метод finalize() в классе Object предназначен для выполнения очистки перед тем, как объект будет удалён сборщиком мусора. Это своего рода деструктор в Java, который вызывается системой автоматически.
Назначение finalize() — освободить ресурсы, которые не управляются JVM, например, закрыть файлы, сетевые соединения и т.п.
Однако использование finalize() не рекомендуется, потому что:
- Вызов
finalize()не гарантируется и может быть отложен. - Это негативно влияет на производительность.
- Есть более современные и надёжные способы управления ресурсами, например, try-with-resources и интерфейс
AutoCloseable.
Пример переопределения:
@Override
protected void finalize() throws Throwable {
try {
// очистка ресурсов
} finally {
super.finalize();
}
}
В современных приложениях лучше избегать finalize() и использовать другие механизмы управления ресурсами.