Back to questions
Junior — Middle
70
Можете объяснить, что происходит при вызове метода finalize в Java и в каких случаях он вызывается?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
В Java метод finalize() вызывается сборщиком мусора перед удалением объекта из памяти. Его задача — освободить ресурсы, которые не управляются JVM, например, закрыть файлы или сетевые соединения.
Однако вызов finalize() не гарантируется и может происходить с задержкой или вообще не произойти, поэтому полагаться на него для освобождения ресурсов не рекомендуется.
Пример использования:
@Override
protected void finalize() throws Throwable {
try {
// Очистка ресурсов
} finally {
super.finalize();
}
}
В современных версиях Java рекомендуется использовать конструкции try-with-resources или явно закрывать ресурсы, а не полагаться на finalize().