Junior — Middle
Hogyan valósul meg a Java nyelvben az objektumok befejezése a leggyakrabban?
sobes.tech MI
Válasz az MI-től
Java-ban az objektumok befejezésének kezelésére általában a finalize() metódust használják, amelyet a szemétgyűjtő hív az objektum törlése előtt. Azonban Java 9-től kezdve ez a módszer elavultnak számít, és nem ajánlott a hívás időpontjának kiszámíthatatlansága és a teljesítményproblémák miatt.
A modern megközelítés az AutoCloseable interfész és a try-with-resources konstrukció használata az erőforrások explicit felszabadítására:
class Resource implements AutoCloseable {
public void close() {
// erőforrások felszabadítása
System.out.println("Erőforrás bezárva");
}
}
try (Resource res = new Resource()) {
// erőforrással való munka
}
// itt automatikusan meghívódik a res.close()
Így az objektumok, különösen azok, amelyek erőforrásokat kezelnek, explicit zárással fejeződnek be, nem pedig a finalize() segítségével.