"Thinking in Java" 4. Ausgabe P519 Seite WeewashMap Kapitel Lesen Notizen
WeaPhashMap wird verwendet, um schwachreferenz zu sparen, eine Struktur, die als Yunxun -Müllsammler bezeichnet wird, reinigt automatisch Schlüssel und Werte.
Beim Hinzufügen von Schlüsseln und Werten wickelt die Zuordnung sie automatisch mit schwachem Rahmen ein.
Siehe JDK -Quellcode,
public v put (k key, v value) {objekt k = masknull (key); int h = hash (k); oldValue = e. -value; if (value! = oldValue) e.Value = value; return OldValue;}} modcount ++; Eintrag <k, v> e = tab [i]; tab [i] = neuer Eintrag <> (k, value, Queue, H, E); if (++ size> = threshold). Der new Entry<>(k, value, queue, h, e) verwendet ReferenceQueue
/ ** * Referenzwarteschlange für gelöschte Schwachentwicklungen */ private endgültige Referenzqueue <objekt> queue = new Referencequeue <> ();
Klicken Sie auf den Konstruktor des new Entry und geben Sie die oberste Ebene von Super ein, um sie zu sehen.
/** * Erstellt eine neue schwache Referenz, die sich auf das angegebene Objekt bezieht und * bei der angegebenen Warteschlange registriert ist. * * @Param Referenzobjekt Die neue schwache Referenz bezieht sich auf * @param q Die Warteschlange, mit der die Referenz registriert werden soll, * oder <Tt> null </ tt> Wenn keine Registrierung erforderlich ist */ public wecreference (t Reference, Referenzqueue <? Super T> Q) {Super (Referenz, q); } Hier konstruiert new Entry auch ein Wecrefence -Objekt
prüfen:
paket com.anialy.test.data_structure.map; import Java.util.iterator; import Java.util.WeakhashMap; public class WeaChashMaptest {public static void main (String [] args) {weawasMap wmap = new WeakhashMap <String, Object, Object, Object, Object, Object, (); i = 0; wmap.keyset (). iterator (); while (iter.hasnext ()) {System.out.println (Wmap.get (iter.next ());}}}Es ist zu erwarten, dass die Ausgänge zum Teil, da String [] schwache Referenzen behält, alle Intervall 3 sind.
Das obige ist der gesamte Inhalt dieses Artikels über die Analyse der WeaChasMap -Instanz der Java -Programmierung. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!