Wo im Speicher werden statische Mitglieder in Java gespeichert?
Statische Methoden und Variablen, wie sie im bereitgestellten Java-Codeausschnitt gezeigt werden, werden im PermGen-Abschnitt des Heap-Speichers in der Hotspot-JVM von Oracle und anderen darauf basierenden gespeichert. PermGen enthält Metadaten, einschließlich klassenbezogener Daten.
Speichermechanismen:
-
Statische Variablen:Nur ihre technischen Werte ( Primitive oder Referenzen) werden in PermGen gespeichert. Wenn eine statische Variable auf ein Objekt verweist, befindet sich das Objekt selbst in Standard-Heap-Bereichen und nicht in PermGen.
-
Statische Methoden: Alle Methoden, auch statische, belegen als Teil der Reflexion Platz in PermGen Daten.
Wichtig Hinweise:
- PermGen wird nur für Metadaten verwendet; Statische Felder werden im regulären Heap gespeichert.
- Eclipse OpenJ9 und andere JVMs verfügen möglicherweise nicht über PermGen oder Metaspace.
- Es ist unzuverlässig, sich bei der Speicherbereinigung auf finalize() zu verlassen. Es liegt an der JVM, den Zeitpunkt der Speicherbereinigung und geeignete Objekte zu bestimmen.
- Das alleinige Setzen einer statischen Variablen auf Null garantiert möglicherweise nicht die Entfernung von Objekten aus dem Heap.
- Die Speicherung von Code und Daten kann variieren abhängig von der JVM-Implementierung und -Version.
Das obige ist der detaillierte Inhalt vonWo werden statische Java-Mitglieder im Speicher gespeichert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!