Junior — Middle
Какво се случва при извикване на метода finalize върху обект в Java и какви ресурси може да освободи?
sobes.tech AI
Отговор от AI
В Java методът finalize() се извиква от събирача на боклуци преди обектът да бъде изтрит от паметта. Този метод е предназначен за освобождаване на неуправляеми ресурси, които не се почистват автоматично, например:
- Затваряне на файлови дескриптори
- Освобождаване на мрежови връзки
- Почистване на нативни ресурси
Въпреки това, използването на finalize() не се препоръчва, тъй като неговото извикване не е гарантирано и може да доведе до забавяне при освобождаването на ресурсите. Модерните подходи препоръчват използването на try-with-resources или явното освобождаване на ресурсите.
Пример:
@Override
protected void finalize() throws Throwable {
try {
// освобождаване на ресурси
} finally {
super.finalize();
}
}