Sobes.tech
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().