Sobes.tech
Junior — Middle

Ako sa najčastejšie realizuje ukončenie objektov v Jave?

sobes.tech AI

Odpoveď od AI

V Jave sa na správu ukončenia objektov zvyčajne používame metódu finalize(), ktorá je volaná garbage collectorem pred odstránením objektu. Od Java 9 je však táto metóda považovaná za zastaranú a neodporúča sa jej používanie kvôli nepredvídateľnosti času volania a problémom s výkonom.

Moderný prístup spočíva v použití rozhrania AutoCloseable a konštrukcie try-with-resources na explicitné uvoľnenie zdrojov:

class Resource implements AutoCloseable {
    public void close() {
        // uvoľnenie zdrojov
        System.out.println("Zdroj zatvorený");
    }
}

try (Resource res = new Resource()) {
    // práca so zdrojom
}
// tu sa automaticky volá res.close()

Takto je ukončenie práce s objektmi, najmä tými, ktoré spravujú zdroje, realizované prostredníctvom explicitného zatvorenia a nie cez finalize().