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