Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή λειτουργίας του συλλέκτη απορριμμάτων στις γλώσσες προγραμματισμού;

sobes.tech AI

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

Ο συλλέκτης απορριμμάτων (Garbage Collector, GC) είναι ένας μηχανισμός αυτόματης διαχείρισης μνήμης που ελευθερώνει τη μνήμη που καταλαμβάνεται από αντικείμενα που δεν χρησιμοποιούνται πλέον από το πρόγραμμα.

Αρχή λειτουργίας:

  1. Παρακολούθηση αναφορών: Ο GC καθορίζει ποια αντικείμενα είναι προσβάσιμα (έχουν αναφορές από ενεργό κώδικα) και ποια όχι.
  2. Ανίχνευση αποβλήτων: Τα αντικείμενα χωρίς αναφορές θεωρούνται απορρίμματα και μπορούν να διαγραφούν.
  3. Απελευθέρωση μνήμης: Ο GC ελευθερώνει τη μνήμη που καταλαμβάνεται από αυτά τα αντικείμενα, ώστε να μπορεί να χρησιμοποιηθεί ξανά.

Στο Flutter (Dart), ο συλλέκτης απορριμμάτων βασίζεται στην καταμέτρηση αναφορών και στον περιοδικό καθαρισμό. Λειτουργεί στο παρασκήνιο και προσπαθεί να ελαχιστοποιήσει τις διακοπές στην εκτέλεση της εφαρμογής.

Παράδειγμα:

class MyClass {
  String data;
  MyClass(this.data);
}

void main() {
  MyClass obj = MyClass('Γειά');
  obj = null; // Τώρα το αντικείμενο MyClass δεν είναι πλέον προσβάσιμο και μπορεί να συλλεχθεί από τον GC
}

Όταν το obj γίνεται null, το αντικείμενο MyClass γίνεται μη προσβάσιμο και θα διαγραφεί από τον συλλέκτη απορριμμάτων.