Junior — Middle
Můžete vysvětlit, co se děje při volání metody finalize v Java a v jakých případech je volána?
sobes.tech AI
Odpověď od AI
V jazyce Java je metoda finalize() volána garbage collectorem před odstraněním objektu z paměti. Jejím úkolem je uvolnit zdroje, které nejsou spravovány JVM, například zavřít soubory nebo síťová spojení.
Nicméně, volání finalize() není garantováno a může být odloženo nebo vůbec nenastat, proto se nedoporučuje na něj spoléhat při uvolňování zdrojů.
Příklad použití:
@Override
protected void finalize() throws Throwable {
try {
// Uvolnění zdrojů
} finally {
super.finalize();
}
}
V moderních verzích Javy se doporučuje používat konstrukce try-with-resources nebo explicitně zavírat zdroje, místo spoléhat na finalize().