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