what is garbage collection java
Αυτό το σεμινάριο εξηγεί τι είναι η συλλογή απορριμμάτων στην Java και πώς λειτουργεί το Garbage Collector. Θα μάθετε επίσης για τους Αλγόριθμους για τη συλλογή απορριμμάτων:
Οι αναγνώστες που γνωρίζουν C / C ++ πρέπει να γνωρίζουν ότι είναι ευθύνη του προγραμματιστή να δημιουργήσει και να διαγράψει τα αντικείμενα στο C / C ++.
Σοβαρά σφάλματα προκύπτουν εάν ο προγραμματιστής ξεχάσει να καταστρέψει τα αντικείμενα που δημιουργήθηκαν. Αυτό συμβαίνει επειδή η αποτυχία καταστροφής των αντικειμένων μπορεί να προκαλέσει ' Μη διαθέσιμη μνήμη Σφάλματα, διαρροές μνήμης κ.λπ.
Αυτή η κατάσταση αντιμετωπίζεται πλήρως στην Java, καθώς δεν χρειάζεται ο προγραμματιστής να παρακολουθεί τα αντικείμενα. Η Java φροντίζει για την καταστροφή αντικειμένων για εμάς μέσω της αυτόματης συλλογής απορριμμάτων.
=> Επισκεφθείτε εδώ για να μάθετε Java από το μηδέν.
Η διαδικασία με την οποία τα αντικείμενα που δεν χρησιμοποιούνται πλέον αφαιρούνται από τη μνήμη σωρού ονομάζεται 'Συλλογή απορριμμάτων'. Η τεχνική συλλογής απορριμμάτων είναι μέρος της διαχείρισης μνήμης στην Java.
Έτσι στην Java, ο Συλλέκτης απορριμμάτων καταστρέφει όλα τα αντικείμενα που δεν χρησιμοποιούνται πλέον.
Τι θα μάθετε:
- Τι είναι ένας συλλέκτης απορριμμάτων στην Java;
- Πώς λειτουργεί η συλλογή απορριμμάτων στην Ιάβα;
- Αλγόριθμοι συλλογής απορριμμάτων στην Ιάβα
- συμπέρασμα
Τι είναι ένας συλλέκτης απορριμμάτων στην Java;
Η συλλογή απορριμμάτων στην Java διαχειρίζεται ένα πρόγραμμα που ονομάζεται Garbage Collector.
Ο συλλέκτης απορριμμάτων μπορεί να οριστεί ως ένα πρόγραμμα που χρησιμοποιείται για τη διαχείριση της μνήμης αυτόματα με το χειρισμό της αφαίρεσης του αντικειμένου.
Γνωρίζουμε ότι στη γλώσσα Java, τα νέα αντικείμενα δημιουργούνται και εκχωρούνται μνήμη χρησιμοποιώντας τον νέο χειριστή. Η μνήμη που εκχωρείται σε ένα αντικείμενο χρησιμοποιώντας έναν νέο τελεστή παραμένει εκχωρημένη έως ότου οι αναφορές χρησιμοποιούν αυτό το αντικείμενο.
Μόλις παύσουν να υπάρχουν οι αναφορές, ανακτάται η μνήμη που καταλαμβάνει το αντικείμενο. Στη συνέχεια, η Java χειρίζεται την απο-κατανομή ή καταστροφή αντικειμένων αυτόματα και δεν χρειάζεται να καταστρέψουμε ρητά το αντικείμενο.
Αυτή η τεχνική είναι η τεχνική συλλογής απορριμμάτων στην Ιάβα όπου οι προγραμματιστές δεν χρειάζεται να χειριστούν ρητά την αφαίρεση αντικειμένων.
Σημειώστε ότι εάν τα προγράμματα δεν εκχωρούν τη μνήμη όταν τα αντικείμενα δεν τη χρειάζονται, τότε τελικά δεν θα απομείνει μνήμη για εκχώρηση και τα προγράμματα θα καταρρεύσουν. Αυτή η κατάσταση ονομάζεται διαρροή μνήμης.
Ο συλλέκτης σκουπιδιών τρέχει πάντα στο παρασκήνιο σε νήμα δαίμονα. Το Garbage Collector θεωρείται το καλύτερο παράδειγμα του νήματος δαίμονα.
Το Garbage Collector τρέχει με σκοπό να απελευθερώσει τη σωστή μνήμη. Αυτό το κάνει καταστρέφοντας τα αντικείμενα που δεν είναι προσβάσιμα.
Τι είναι ένα 'απρόσιτο' αντικείμενο;
Ένα αντικείμενο γίνεται απρόσιτο όταν δεν υπάρχει ούτε μία αναφορά που να σχετίζεται με αυτό.
Εξετάστε το ακόλουθο κομμάτι κώδικα:
Integer ref_obj = new Integer (5); //ref_obj is a reference to Integer ref_obj = null; //Integer object now becomes unreachable
Όπως φαίνεται από τον παραπάνω κώδικα, ένα αντικείμενο είναι προσβάσιμο εφ 'όσον σχετίζεται με μια αναφορά. Τη στιγμή που αφαιρείται η συσχέτιση αναφοράς (μια ρύθμιση αναφοράς για το null στην παραπάνω περίπτωση) το αντικείμενο γίνεται απρόσιτο.
Όταν ένα αντικείμενο δεν είναι προσβάσιμο, καθίσταται κατάλληλο για Συλλογή απορριμμάτων (GC).
Πώς μπορούμε να κάνουμε ένα αντικείμενο κατάλληλο για GC;
Παρόλο που ο προγραμματιστής δεν απαιτείται να καταστρέψει τα αντικείμενα καθώς τα φροντίζει η GC, τουλάχιστον ο προγραμματιστής μπορεί να κάνει αυτά τα αντικείμενα απρόσιτα όταν δεν είναι πλέον απαραίτητα.
Κάνοντας αυτό, η GC θα συλλέξει τα απρόσιτα αντικείμενα και θα τα καταστρέψει.
Υπάρχουν ορισμένοι τρόποι για να κάνετε ένα αντικείμενο κατάλληλο για GC καθιστώντας το απρόσιτο.
Αυτοί είναι:
# 1) Μηδενίστε την αναφορά
Δεδομένης μιας αναφοράς που έχει εκχωρηθεί σε ένα αντικείμενο, εάν αυτό το αντικείμενο δεν είναι πλέον απαραίτητο, αντιστοιχίστε την αναφορά στο null.
Student s = new Student (); s = null;
Όταν το s είναι μηδενικό, το αντικείμενο Student γίνεται απρόσιτο.
# 2) Εκ νέου εκχώρηση της αναφοράς
Αυτός είναι ένας άλλος τρόπος για να καταστήσετε τα αντικείμενα επιλέξιμα για GC.
Εξετάστε τον ακόλουθο κώδικα.
Student s1 = new Student (); Student s2 = new Student (); s1 = s2;
Τώρα, καθώς έχουμε αντιστοιχίσει το s1 σε ένα άλλο αντικείμενο, το αντικείμενο Student που αναφέρεται από το s1 δεν γίνεται αναφορά.
# 3) Δημιουργήστε ένα ανώνυμο αντικείμενο
Δημιουργώντας ένα ανώνυμο αντικείμενο μπορούμε να κάνουμε τα αντικείμενα επιλέξιμα για GC.
Μπορούμε να δημιουργήσουμε ένα ανώνυμο αντικείμενο όπως φαίνεται παρακάτω:
new Student();
Μόλις καταστήσουμε τα αντικείμενα επιλέξιμα για GC, αυτά τα αντικείμενα ενδέχεται ή όχι να καταστραφούν αμέσως από την GC. Αυτό συμβαίνει επειδή δεν μπορούμε να αναγκάσουμε ρητά την εκτέλεση του GC όπως και όταν θέλουμε.
Πότε λειτουργεί ο συλλέκτης απορριμμάτων;
Εναπόκειται στο JVM να εκτελέσει το πρόγραμμα συλλογής απορριμμάτων. Όταν η JVM εκτελεί τον συλλέκτη απορριμάτων, τα αντικείμενα που δεν είναι προσβάσιμα καταστρέφονται. Ωστόσο, δεν μπορούμε να εγγυηθούμε πότε θα εκτελεστεί το JVM.
Παρόλο που δεν μπορούμε να αναγκάσουμε την εκτέλεση του GC, μπορούμε πολύ καλά να ζητήσουμε μια συλλογή απορριμμάτων.
Το GC μπορεί να ζητηθεί χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες μεθόδους.
# 1) System.gc (): Η κλάση συστήματος Java παρέχει μια στατική μέθοδο gc () χρησιμοποιώντας την οποία μπορούμε να ζητήσουμε από το JVM να εκτελέσει το Garbage Collector.
# 2) Runtime.getRuntime (). Gc (): Όπως το System.gc (), μπορούμε επίσης να χρησιμοποιήσουμε τη μέθοδο gc () του 'Runtime class' για να ζητήσουμε από το JVM να τρέξει το Garbage Collector.
Σημείωση: Δεν υπάρχει καμία εγγύηση ότι ο Συλλέκτης απορριμμάτων θα τρέξει μετά από αίτημα από αυτές τις δύο μεθόδους.
Οριστικοποίηση
Η οριστικοποίηση πραγματοποιείται από το Garbage Collector λίγο πριν καταστρέψει τα αντικείμενα. Ως μέρος της τεχνικής οριστικοποίησης, ο Συλλέκτης απορριμάτων καλεί τη μέθοδο οριστικοποίησης () στο αντικείμενο. Η μέθοδος οριστικοποίησης () χρησιμοποιείται για την εκτέλεση δραστηριοτήτων καθαρισμού.
Η μέθοδος οριστικοποίησης () παρέχεται από την κατηγορία 'Αντικείμενο' και έχει το ακόλουθο πρωτότυπο.
protected void finalize () throws Throwable
Η μέθοδος οριστικοποίησης () καλείται κάθε φορά που το αντικείμενο συλλέγεται σκουπίδια
Σημείωση: Ο συλλέκτης απορριμμάτων συλλέγει μόνο τα αντικείμενα που δημιουργούνται χρησιμοποιώντας τη νέα λέξη-κλειδί. Για άλλα αντικείμενα, πρέπει να χρησιμοποιήσουμε τη μέθοδο finalize () για να εκτελέσουμε τον καθαρισμό.
Το παρακάτω πρόγραμμα δείχνει μια απλή συλλογή απορριμμάτων στην Java.
class TestGC{ @Override // finalize method: called on object once // before garbage collecting it protected void finalize() throws Throwable { System.out.println('Garbage collector called'); System.out.println('Object garbage collected : ' + this); } } class Main{ public static void main(String args()){ TestGC gc1=new TestGC(); TestGC gc2=new TestGC(); gc1 = null; //nullify gc1 System.gc(); //request for GC to run gc2 = null; //nullify gc2 Runtime.getRuntime().gc(); //request for GC to run } }
Παραγωγή
Στο παραπάνω πρόγραμμα, έχουμε δημιουργήσει μια τάξη TestGC. Σε αυτήν την τάξη, έχουμε παρακάμψει τη μέθοδο finalize (). Στη συνέχεια, στην κύρια τάξη, δημιουργούμε δύο αντικείμενα της κλάσης TestGC. Αρχικά, ακυρώνουμε ένα αντικείμενο και καλούμε το System.gc () να ζητήσουμε το Garbage Collector.
Στη συνέχεια, ακυρώνουμε το δεύτερο αντικείμενο και καλούμε τη μέθοδο Runtime.getRuntime.gc () για να ζητήσουμε το Garbage Collector. Η έξοδος δείχνει την έξοδο της μεθόδου οριστικοποίησης δύο φορές, υποδεικνύοντας ότι ο Συλλέκτης απορριμμάτων έτρεξε δύο φορές.
Σημείωση: Αν και έχουμε αυτή την έξοδο, δεν είναι εγγυημένο ότι κάθε φορά θα έχουμε την ίδια έξοδο. Εξαρτάται πλήρως από την JVM.
Πώς λειτουργεί η συλλογή απορριμμάτων στην Ιάβα;
Σε αυτήν την ενότητα, θα δούμε πώς λειτουργεί η συλλογή απορριμμάτων στην Java.
Κατά τη συλλογή απορριμμάτων, ο Συλλέκτης απορριμμάτων αναζητά τη μνήμη Heap και στη συνέχεια «επισημαίνει» τα μη προσβάσιμα αντικείμενα. Τότε τα καταστρέφει.
Αλλά το πρόβλημα προκύπτει όταν ο αριθμός των αντικειμένων αυξάνεται. Καθώς τα αντικείμενα αυξάνονται, ο χρόνος που απαιτείται για τη συλλογή απορριμμάτων αυξάνεται επίσης καθώς αναζητά αντικείμενα που δεν είναι προσβάσιμα. Ωστόσο, δεν επηρεάζει πάρα πολύ καθώς τα περισσότερα από τα αντικείμενα έχουν μικρή διάρκεια ζωής.
Η παραπάνω συμπεριφορά ονομάζεται «Συλλογή απορριμμάτων γενεών» και υποτίθεται ότι βελτιώνει την απόδοση του JVM. Σε αυτήν την προσέγγιση, ολόκληρος ο χώρος του σωρού χωρίζεται σε - Generation Young, Old ή Tenured Generation και Permanent Generation.
# 1) Χώρος νέας γενιάς: Όλα τα νέα αντικείμενα δημιουργούνται σε αυτόν τον χώρο. Μόλις γεμίσει ο χώρος, λαμβάνει χώρα το Minor GC όπου καταστρέφονται όλα τα νεκρά αντικείμενα. Η μικρή διαδικασία GC είναι γρήγορη και γρήγορη καθώς τα περισσότερα αντικείμενα είναι νεκρά. Τα αντικείμενα που σώζονται από τη νέα γενιά μεταφέρονται στις παλαιότερες γενιές.
# 2) Χώρος παλιάς γενιάς: Αυτή η γενιά αποθηκεύει αντικείμενα που επιβιώνουν για μεγάλο χρονικό διάστημα. Όταν πληρούται το όριο ηλικίας για τη νέα γενιά, το αντικείμενο μετακινείται στην παλιά γενιά. Όταν γεμίζει ο χώρος της παλιάς γενιάς, εκτελείται ένα Major GC.
Το Major GC είναι αργό καθώς τα αντικείμενα που εμπλέκονται εδώ είναι ζωντανά αντικείμενα. Μερικές φορές, εκκαθαρίζεται ολόκληρος ο χώρος του σωρού που περιλαμβάνει νέους, καθώς και παλαιές γενιές. Αυτό ονομάζεται 'Πλήρες GC'.
# 3) Μόνιμη δημιουργίαL Μέχρι το Java 7 υπήρχε μια Μόνιμη Γενιά (Perm Gen). Τα μεταδεδομένα που διατηρήθηκαν από το Perm Gen χρησιμοποιήθηκαν από την JVM. Η JVM χρησιμοποίησε αυτά τα μεταδεδομένα για να περιγράψει τάξεις και μεθόδους που χρησιμοποιούνται στην εφαρμογή. Το Perm Gen αφαιρέθηκε στο Java 8.
Συλλογή απορριμμάτων Java 8: Perm Gen και Metaspace
Έχουμε ήδη αναφέρει για τον χώρο Perm Gen που υπήρχε μέχρι την Java 7. Ωστόσο, τώρα στην Java 8, το JVM αντιπροσωπεύει τα μεταδεδομένα κλάσης χρησιμοποιώντας την εγγενή μνήμη που ονομάζεται 'Metaspace'.
Εκτός από το Metaspace, υπάρχει μια νέα σημαία που ονομάζεται 'MaxMetaspaceSize' που περιορίζει τη μνήμη που χρησιμοποιείται για μεταδεδομένα κλάσης. Εάν δεν έχει καθοριστεί τιμή για το MaxMetaspaceSize, τότε το Metaspace το αλλάζει σε μέγεθος κατά το χρόνο εκτέλεσης σύμφωνα με τη ζήτηση της εφαρμογής.
Όταν ο χώρος μεταδεδομένων της τάξης φτάσει στο MaxMetaspaceSize, ενεργοποιείται το Metaspace GC. Όταν υπάρχει υπερβολικό Metaspace GC, υποδεικνύει διαρροή μνήμης τάξεων, φορτωτών τάξης κ.λπ. καθώς και ανεπαρκούς μεγέθους.
Αλγόριθμοι συλλογής απορριμμάτων στην Ιάβα
Υπάρχουν διάφοροι τρόποι με τους οποίους πραγματοποιείται η συλλογή απορριμμάτων. Σε αυτήν την ενότητα, θα παρουσιάσουμε τέσσερις τέτοιους τρόπους ή αλγόριθμους για τη συλλογή απορριμμάτων στην Java.
Σειριακό GC
Το Serial GC είναι ο απλούστερος αλγόριθμος GC. Λειτουργεί κυρίως σε μικρά μεγέθη σωρού και μονόστροφα συστήματα. Ενώ εργάζεστε, το Serial GC παγώνει όλες τις εφαρμογές.
Για να ενεργοποιήσετε το Serial GC, μπορούμε να χρησιμοποιήσουμε την ακόλουθη επιλογή JVM.
ερωτήσεις συνέντευξης προγραμματισμού java server side
java –xx:+UseSerialGC –jar Application.java
Η παραπάνω εντολή μπορεί να δοθεί στη γραμμή εντολών. Εδώ το Application.java είναι ένα αρχείο για το οποίο πρόκειται να ενεργοποιηθεί το σειριακό GC.
Απόδοση / παράλληλη GC
Ο αλγόριθμος Parallel GC είναι ο προεπιλεγμένος στο JDK 8. Αυτός ο αλγόριθμος χρησιμοποιεί πολλαπλά νήματα για τη σάρωση του σωρού και της συμπίεσης. Αυτός ο αλγόριθμος είναι κατάλληλος ως επί το πλείστον για εφαρμογές που μπορούν να χειριστούν παύσεις νήματος και να βελτιστοποιήσουν τα γενικά CPU.
Ένα μειονέκτημα του παράλληλου GC είναι ότι κατά την εκτέλεση δευτερεύουσας ή πλήρους GC, ο αλγόριθμος διακόπτει τα νήματα της εφαρμογής.
Ο Συλλέκτης CMS
Το CMS σημαίνει « Ταυτόχρονο Mark Sweep '. Αυτός ο αλγόριθμος χρησιμοποιεί πολλαπλάσια ταυτόχρονος νήματα για σάρωση του σωρού ( σημάδι ) για τον εντοπισμό αχρησιμοποίητων αντικειμένων και την ανακύκλωση ( σκούπισμα ) τους. Ο συλλέκτης CMS διαθέτει λειτουργία Stop-The-World (STW).
Ο συλλέκτης πηγαίνει σε αυτήν τη λειτουργία σε δύο σενάρια:
- Όταν τα αντικείμενα που ανήκουν στην παλιά γενιά μπορούν να προσεγγιστούν από στατικές μεταβλητές ή σημεία εισόδου νήματος. Έτσι, αυτή η λειτουργία είναι ενεργοποιημένη κατά την αρχικοποίηση των αρχικών σημάνσεων ρίζας.
- Όταν ο αλγόριθμος εκτελείται ταυτόχρονα, η εφαρμογή αλλάζει την κατάσταση και αναγκάζει τον συλλέκτη να επιστρέψει για να βεβαιωθεί ότι έχουν επισημανθεί τα σωστά αντικείμενα.
Ο συλλέκτης CMS ωστόσο μπορεί να υποφέρει από 'αποτυχίες προώθησης'. Τι είναι λοιπόν μια διαφημιστική αποτυχία; Εάν τα αντικείμενα από το χώρο της νέας γενιάς μετακινηθούν στην παλιά γενιά και ο συλλέκτης δεν έχει διαθέσει αρκετό χώρο για αυτά τα αντικείμενα στον χώρο σωρού της παλιάς γενιάς, τότε θα προκύψει αποτυχία προώθησης.
Για να αποτρέψουμε την αποτυχία προώθησης, ενδέχεται να παρέχουμε περισσότερα νήματα στο παρασκήνιο στον συλλέκτη ή να παρέχουμε μεγαλύτερο μέγεθος σωρού στην παλιά γενιά.
Ο Συλλέκτης G1
Ο Συλλέκτης G1 είναι ο Συλλέκτης “Garbage-First”. Έχει σχεδιαστεί για μεγέθη σωρού άνω των 4 GB. Με βάση το μέγεθος του σωρού, διαιρεί το μέγεθος του σωρού σε περιοχές με μεγέθη που κυμαίνονται από 1MB έως 32MB.
Ο συλλέκτης G1 επισημαίνει τα αντικείμενα ανάλογα με τη ζωντάνια των αντικειμένων σε όλο το σωρό. Μετά από αυτήν τη φάση σήμανσης, το G1 γνωρίζει τις κενές περιοχές. Έτσι συλλέγει τα απρόσιτα αντικείμενα από αυτές τις περιοχές, απελευθερώνοντας έτσι μεγάλο χώρο. Ως εκ τούτου ονομάζεται Garbage-First καθώς συλλέγει περιοχές που περιέχουν σκουπίδια πρώτα.
Επιτυγχάνει επίσης τον καθορισμένο από τον χρήστη στόχο χρόνου παύσης χρησιμοποιώντας ένα μοντέλο πρόβλεψης παύσης επιλέγοντας τον αριθμό των περιοχών που θα συλλέγονται ανάλογα με τον καθορισμένο στόχο χρόνου παύσης.
Πλεονέκτημα της συλλογής απορριμμάτων
- Η συλλογή απορριμμάτων καθιστά τη διαχείριση μνήμης στην Java αποτελεσματική καθώς αφαιρεί αντικείμενα χωρίς αναφορές από τη μνήμη σωρού χωρίς την παρέμβαση του προγραμματιστή.
- Καθώς η συλλογή απορριμμάτων είναι αυτόματη και αποτελεί μέρος του JVM, δεν απαιτούνται επιπλέον προσπάθειες από τον προγραμματιστή για την ανάκτηση μνήμης ή την καταστροφή αντικειμένων.
- Ο προγραμματιστής δεν χρειάζεται να γράψει κανένα συγκεκριμένο κωδικό για να αφαιρέσει τη μνήμη και να διαγράψει αντικείμενα όπως γίνεται στο C / C ++.
Συχνές Ερωτήσεις
Ε # 1) Ποιος είναι ο ρόλος του Συλλέκτη απορριμάτων;
Απάντηση: Στην Java, ο Συλλέκτης απορριμμάτων είναι το κύριο μέρος της διαχείρισης μνήμης και έχει την ευθύνη να συλλέγει τα μη προσβάσιμα αντικείμενα και να ανακτά τη μνήμη.
Ε # 2) Τι εννοείτε με τη συλλογή απορριμμάτων;
Απάντηση: Η συλλογή απορριμμάτων είναι η τεχνική με την οποία η μνήμη διαχειρίζεται αυτόματα ανακτώντας την αχρησιμοποίητη μνήμη. Είναι ένα χαρακτηριστικό που υπάρχει σε γλώσσες προγραμματισμού όπως η Java, λόγω της οποίας οι προγραμματιστές δεν χρειάζεται να παρακολουθούν τα αχρησιμοποίητα αντικείμενα και να τα καταστρέφουν. Αυτό γίνεται αυτόματα χρησιμοποιώντας τη συλλογή απορριμμάτων.
Q # 3) Ποιος είναι υπεύθυνος για τη συλλογή απορριμμάτων στην Ιάβα;
Απάντηση: Η διαχείριση μνήμης της Java έχει την ευθύνη της συλλογής απορριμμάτων.
Q # 4) Πώς μπορούμε να αποτρέψουμε τη συλλογή απορριμμάτων στην Java;
Απάντηση: Καθώς ο Συλλέκτης απορριμμάτων δεν ανακτά τη μνήμη των μεταβλητών / αντικειμένων που είναι ζωντανά, ο καλύτερος τρόπος για να αποτρέψετε τη συλλογή απορριμμάτων είναι να συνεχίσετε να χρησιμοποιείτε μεταβλητές / αντικείμενα σε όλο το πρόγραμμα.
Q # 5) Πώς μπορείτε να βεβαιωθείτε ότι ένα αντικείμενο συλλέγεται σκουπίδια;
Απάντηση: Ένα αντικείμενο είναι κατάλληλο για συλλογή απορριμμάτων όταν δεν είναι προσβάσιμο, δηλαδή όταν δεν αναφέρονται άλλες αναφορές στο αντικείμενο. Παρόλο που δεν μπορούμε να αναγκάσουμε την εκτέλεση του Συλλέκτη απορριμάτων όποτε θέλουμε, μπορούμε πάντα να το ζητήσουμε να εκτελεστεί χρησιμοποιώντας το System.gc ().
συμπέρασμα
Η συλλογή απορριμμάτων στην Java που συζητήσαμε σε αυτό το σεμινάριο είναι αυτόματη και ο προγραμματιστής δεν χρειάζεται να ανησυχεί για τη διαγραφή των αντικειμένων ή των μεταβλητών που έχουν εκχωρηθεί στο πρόγραμμα.
Η Αυτόματη συλλογή απορριμμάτων στην Java είναι το πιο σημαντικό χαρακτηριστικό της γλώσσας και αποτελεί μέρος της διαχείρισης μνήμης στην Java.
Παρόλο που η συλλογή απορριμμάτων εκτελείται από την JVM και δεν είναι διαθέσιμη από τον προγραμματιστή, μπορούμε πάντα να ζητήσουμε την εκτέλεση του Garbage Collector με τη μέθοδο gc () της κλάσης System and Runtime.
Σε αυτό το σεμινάριο, έχουμε συζητήσει τη διαδικασία οριστικοποίησης που εκτελείται πριν από την καταστροφή των αντικειμένων από το Garbage Collector. Συζητήσαμε επίσης τη διαδικασία συλλογής απορριμμάτων στην Ιάβα. Τέλος, έχουμε συζητήσει τους διάφορους αλγόριθμους που χρησιμοποιεί ο Συλλέκτης απορριμάτων.
Αυτό ολοκληρώνει τη συζήτησή μας για το Συλλέκτη απορριμάτων στην Ιάβα.
=> Παρακολουθήστε εδώ την απλή εκπαίδευση Java.
Συνιστώμενη ανάγνωση
- Βασικά στοιχεία Java: Java Syntax, Java Class και Core Java Concepts
- Σε τι χρησιμοποιείται η Java: 12 εφαρμογές Java πραγματικού κόσμου
- Εκμάθηση συμβολοσειράς Java | Μέθοδοι συμβολοσειράς Java με παραδείγματα
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Java Components: Java Platform, JDK, JRE και Java Virtual Machine
- Ανάπτυξη Java: Δημιουργία και εκτέλεση αρχείου Java JAR
- Java Virtual Machine: Πώς βοηθά το JVM στην εκτέλεση της εφαρμογής Java
- Εκμάθηση Java Reflection με παραδείγματα