Was ist die Hierarchie der Referenzen in Java?
SoftReferences vs. WeakReferences
Während der Diskussion Referenzen In Java stößt man häufig auf die Begriffe „weiche Referenzen“ und „schwache Referenzen“. Was genau stellen diese beiden Arten von Referenzen dar und wie unterscheiden sie sich?
Wie der Artikel „Understanding Weak References“ von Ethan Nicholas erklärt, sind schwache Referenzen Referenzen, die nicht stark genug sind, um ein Objekt im Gedächtnis zu halten . Dies bedeutet, dass der Garbage Collector es möglicherweise entfernen kann, sobald keine starken Referenzen auf ein Objekt verweisen.
Im Gegensatz dazu sind weiche Referenzen wie schwache Referenzen, aber sie sind weniger darauf bedacht, das referenzierte Objekt zu verwerfen. Soft erreichbare Objekte bleiben im Speicher, solange ausreichend Speicher verfügbar ist. Wenn der Speicher knapp wird, bereinigt der Garbage Collector möglicherweise Soft-Referenzen, um Speicherplatz freizugeben.
Diese Eigenschaften machen Soft-Referenzen ideal für Caches, in denen Objekte für einen schnellen Zugriff gespeichert werden können, solange der Speicher dies zulässt. Bei Speichermangel werden die am wenigsten wichtigen Objekte (weich erreichbare) entfernt.
Darüber hinaus stellt Peter Kessler fest, dass die Sun JRE weiche Referenzen anders behandelt als schwache Referenzen. Die Client-JRE priorisiert das Entfernen von Soft-Referenzen, um einen geringeren Speicherbedarf aufrechtzuerhalten, während sich die Server-JRE auf die Leistung konzentriert, indem sie den Heap erweitert, anstatt Soft-Referenzen zu eliminieren.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Soft-Referenzen und schwachen Referenzen in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!