Junior — Middle
Πώς πραγματοποιείται αυτόματη καθαριότητα μνήμης στο περιβάλλον εκτέλεσης του προγράμματος;
sobes.tech AI
Απάντηση από AI
Ο αυτόματος καθαρισμός μνήμης σε περιβάλλον εκτέλεσης, όπως το Android, πραγματοποιείται με τη βοήθεια του συλλέκτη απορριμμάτων (Garbage Collector, GC). Παρακολουθεί τα αντικείμενα στη μνήμη και απελευθερώνει αυτά στα οποία δεν υπάρχουν πλέον αναφορές στο πρόγραμμα. Αυτό βοηθά στην αποφυγή διαρροών μνήμης και στην απελευθέρωση πόρων χωρίς άμεση παρέμβαση του προγραμματιστή.
Αρχή λειτουργίας:
- Ο συλλέκτης απορριμμάτων τρέχει περιοδικά και σαρώσει το σωρό (heap) για αντικείμενα που δεν είναι προσβάσιμα από τις ρίζες αναφορών.
- Τέτοια αντικείμενα θεωρούνται απορρίμματα και η μνήμη τους απελευθερώνεται.
Στο Android, χρησιμοποιούνται το περιβάλλον εκτέλεσης Dalvik ή ART, που έχουν τις δικές τους υλοποιήσεις GC, βελτιστοποιημένες για κινητές συσκευές.
Παράδειγμα σε Java (Android):
// Δημιουργία αντικειμένου
MyObject obj = new MyObject();
// Αφού το obj σταματήσει να χρησιμοποιείται και οι αναφορές σε αυτό εξαφανιστούν,
// ο συλλέκτης απορριμμάτων θα ελευθερώσει αυτόματα τη μνήμη.
obj = null;
// Μπορεί να καλέσετε το System.gc() για να προτείνετε στον GC, αλλά αυτό δεν εγγυάται άμεση καθαριότητα.
System.gc();