Was ist Java Garbage Collection? Zusammenfassung der Konzepte Mark und Sweep, Young, Old, Perm
Bei der Java-Programmierung hört man oft den Begriff Garbage Collection. Obwohl die Entwicklung ohne dieses Wissen in den frühen Entwicklungsstadien möglich ist, ist es gut zu wissen, um die Leistung zu optimieren oder Speicherlecks zu verhindern.
Dies ist eines der häufig gestellten Themen in Interviews bei Unternehmen, die Java einsetzen.
In diesem Dokument fassen wir die Java Garbage Collection zusammen, damit Sie sie leicht verstehen können.
Dies ist eine kurze Zusammenfassung, die Ihnen helfen soll, unbekannte Konzepte zu verstehen. Wir empfehlen Ihnen daher, andere Artikel zu lesen, um detaillierte Informationen zu erhalten.
Der Name Garbage Collection bedeutet Sammlung von Müll. Sammelt automatisch ungenutzten Speicher
Ungenutzter Speicher: Speicher, der nicht mehr verwendet wird.
Speichersammlung: Gibt ungenutzten Speicher frei, sodass er wieder verwendet werden kann.
Die Java-Speicherverwaltung erfolgt über JVM.
In bestehenden Sprachen musste der Programmierer die Speicherzuweisung und -freigabe direkt verwalten. Wenn der Speicher nicht ordnungsgemäß freigegeben wird, sammelt sich weiterhin ungenutzter Speicher an und es kommt zu einem Speicherverlust.
JVM ist eine virtuelle Maschine, verarbeitet die Speicherzuweisung und -freigabe automatisch, ohne dass sich der Benutzer darum kümmern muss
Geben Sie die von der JVM zu verwendende Speichergröße an, indem Sie beim Ausführen des Programms eine JVM-Option angeben.
Speicherlecks auf Betriebssystemebene werden verhindert, indem nicht direkt auf den Speicher auf Betriebssystemebene zugegriffen wird.
Garbage Collection sichert den Speicher, indem nicht erreichbare Objekte aus dem Heap-**Bereich entfernt werden.
Nicht erreichbares Objekt: ein Objekt, auf das nicht mehr verwiesen wird
Findet und markiert ein erreichbares Objekt. Der Garbage Collector durchsucht alle Variablen im Stapel, um herauszufinden, auf welches Objekt die einzelnen Variablen verweisen.
Alle Threads werden für die Mark-Arbeit gestoppt, dies wird als Stop the World bezeichnet
Aus den oben genannten Gründen können Sie die Speicherbereinigung explizit durch Aufruf von System.gc() veranlassen, dies wird jedoch nicht empfohlen.