Was ist der Unterschied zwischen java.lang.ref.WeakReference
y java.lang.ref.SoftReference
?
Antworten
Zu viele Anzeigen?
Fai Lau
Punkte
31
Artem Petrov
Punkte
712
WeakReference Objekte, die nur schwach referenziert sind, werden bei jedem GC-Zyklus (minor oder full) gesammelt.
SoftReference Wenn Objekte, die nur sanft referenziert werden, gesammelt werden, hängt das davon ab:
-
Kennzeichen -XX:SoftRefLRUPolicyMSPerMB=N (Standardwert ist 1000, d. h. 1 Sekunde)
-
Menge des freien Speichers auf dem Heap.
Beispiel:
- Heap hat 10MB freien Platz (nach voller GC);
- -XX:SoftRefLRUPolicyMSPerMB=1000
Dann wird das Objekt, auf das nur durch SoftReference verwiesen wird, gesammelt, wenn der letzte Zugriffszeitpunkt größer als 10 Sekunden ist.
- See previous answers
- Weitere Antworten anzeigen