Heim  >  Artikel  >  Java  >  Wie arbeiten die junge, die alte und die permanente Generation bei der Java-Speicherverwaltung zusammen?

Wie arbeiten die junge, die alte und die permanente Generation bei der Java-Speicherverwaltung zusammen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 17:46:29615Durchsuche

How do the Young, Old, and Permanent Generations Work Together in Java Memory Management?

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 :

  • Wenn ein Objekt zugewiesen wird, wird es im Eden-Raum platziert.
  • Wenn ein Objekt eine oder mehrere Garbage Collections in Eden überlebt, wird es in einen Survivor-Raum befördert.
  • Objekte, die ausreichend lange in den Survivor-Räumen überleben, werden in die alte Generation befördert.
  • Objekte in der alten Generation bleiben dort, bis sie nicht mehr erreichbar sind oder bis eine vollständige Speicherbereinigung erfolgt.
  • Die permanente Generierung speichert Klassendefinitionen und Metadaten für alle geladenen Klassen während der gesamten Lebensdauer der Anwendung.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn