Sobes.tech
Junior — Middle

Môžete vysvetliť, čo sa deje pri volaní metódy finalize v Jave a v akých prípadoch sa volá?

sobes.tech AI

Odpoveď od AI

V jazyku Java sa volaná metóda finalize() pred odstránením objektu z pamäte. Jejím úlohou je uvoľniť zdroje, ktoré JVM neriadí, ako je zatváranie súborov alebo sieťových spojení.

Avšak, volanie finalize() nie je garantované a môže nastať s oneskorením alebo vôbec, preto sa neodporúča naň spoliehať pri uvoľňovaní zdrojov.

Príklad použitia:

@Override
protected void finalize() throws Throwable {
    try {
        // Uvoľnenie zdrojov
    } finally {
        super.finalize();
    }
}

V moderných verziách Javy sa odporúča používať konštrukcie try-with-resources alebo explicitne zatvárať zdroje, namiesto spoliehania sa na finalize().