Java-Speicherverwaltung: Junge, alte und permanente Generationen verstehen
In der Speicherverwaltungsterminologie von Java ist der Heap in drei primäre Generationen unterteilt : jung, alt und dauerhaft. Jede Generation dient einem bestimmten Zweck und interagiert dynamisch mit den anderen.
Junge Generation
Die junge Generation ist ein Bereich des Heaps, in dem neue Objekte zunächst zugewiesen werden. Es ist weiter in zwei Unterräume unterteilt: Eden und Survivor. Die meisten Zuweisungen finden im Eden-Raum statt. Wenn ein Objekt im Eden-Space einen oder mehrere Garbage-Collection-Zyklen übersteht, wird es in einen Survivor-Space befördert.
Alte Generation
Die alte Generation ist der primäre Speicherbereich für langlebige Objekte. Objekte, die mehrere Garbage Collections in den Survivor-Räumen überstehen, werden zur alten Generation hochgestuft. Die alte Generation ist auch für die Speicherung großer Objekte verantwortlich, die nicht in die junge Generation passen.
Permanente Generation (Nicht-Heap)
Im Gegensatz zu ihrem Namen ist die permanente Generation Generation ist nicht Teil des Heaps in der JVM von Oracle. Es handelt sich um einen separaten und dedizierten Bereich, der hauptsächlich für Klassendefinitionen, Metadaten und gemeinsam genutzte Konstantendaten reserviert ist. In Java 6 und früheren Versionen wurden interne Zeichenfolgen auch in der permanenten Generation gespeichert, dies änderte sich jedoch in Java 7.
Interaktionen und Beziehungen
Die drei Generationen interagieren wie folgt :
Das obige ist der detaillierte Inhalt vonWie arbeiten die junge, die alte und die permanente Generation bei der Java-Speicherverwaltung zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!