Heim >Java >javaLernprogramm >Detaillierte Erläuterung mehrerer allgemeiner Referenzfunktionen in Java
Dieser Artikel stellt Ihnen hauptsächlich relevante Informationen über die vielfältigen Funktionen von Reference in Java vor, die für jeden, der sie benötigt, einen gewissen Referenz- und Lernwert haben und studieren.
Vorwort
Mehrere Referenzfunktionen in Java sind auch Fragen, die oft in Interviews gestellt werden. Früher habe ich mich an sie erinnert und sie dann wieder vergessen . Jetzt, wo ich Zeit habe, könnte ich genauso gut eine Demo schreiben, um es auszuprobieren. Werfen wir einen Blick auf die ausführliche Einführung:
Der spezifische Code lautet wie folgt:
JVM-Parameter: -Xmx10m -Xms5m -XX:+PrintGC
SoftReference:
weakReference:
StrongReference:
Da Strong die Standardeinstellung von JVM ist, werde ich es hier nicht tun, einfach nicht weiß es überhaupt Recycelt bis OOM
PhantomReference:
VirtualReference ändert den Speicherrecyclingmechanismus nicht, es wird nur in die ReferenceQueue gestellt während des Recyclings Benachrichtigen Sie den Benutzer, um einige zusätzliche Vorgänge durchzuführen, z. B. das Drucken von Protokollen usw.
Der folgende Code ist im Wesentlichen byte[] immer noch eine starke Referenz.
Ausgabe:
Zusammenfassung:
StrongReference: JVM-Standard, es sei denn, es gibt keine weitere Objekt-Referenz während der GC, selbst OOM wird nicht recycelt
WeakReference: Sobald es nicht referenziert wird, wird es während des GC recycelt
SoftReference: Dasselbe wie stark, es sei denn, es gibt keinen Objektverweis während des GC, andernfalls ... wird es vor OOM sein recycelt, sodass SoftReference im Allgemeinen für Caching
sun.nio.ch.Util verwendet werden kann. Es verfügt über private statische ThreadLocal< ;SoftReference
= new ThreadLocal
für temporären Selector .
PhantomReference: Die ReferenceQueue des Konstruktors wird als Benachrichtigung verwendet, um zusätzliche Vorgänge auszuführen, wenn das Objekt recycelt wird.
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung mehrerer allgemeiner Referenzfunktionen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!