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