Sobes.tech
Junior — Middle

Πώς υλοποιείται συχνότερα το τερματισμό αντικειμένων στη Java;

sobes.tech AI

Απάντηση από AI

Στην Java, για τη διαχείριση του τερματισμού αντικειμένων, συνήθως χρησιμοποιείται η μέθοδος finalize(), η οποία καλείται από τον συλλέκτη απορριμμάτων πριν από τη διαγραφή του αντικειμένου. Ωστόσο, από την Java 9 και μετά, αυτή η μέθοδος θεωρείται παρωχημένη και δεν συνιστάται η χρήση της λόγω της απρόβλεπτης χρονικής στιγμής κλήσης και των προβλημάτων απόδοσης.

Η σύγχρονη προσέγγιση είναι η χρήση της διεπαφής AutoCloseable και της κατασκευής try-with-resources για ρητή απελευθέρωση πόρων:

class Resource implements AutoCloseable {
    public void close() {
        // απελευθέρωση πόρων
        System.out.println("Πόρος κλειστός");
    }
}

try (Resource res = new Resource()) {
    // εργασία με τον πόρο
}
// εδώ, καλείται αυτόματα το res.close()

Έτσι, το τερματισμό εργασίας αντικειμένων, ειδικά αυτών που διαχειρίζονται πόρους, πραγματοποιείται μέσω ρητού κλεισίματος και όχι μέσω finalize().