Zwischenspeichern: Mit Javas Referenzobjekten ein Kinderspiel

Eine der üblichsten praktischen Anwendungen von Referenzobjekten sind Speicher-Caches. Anstatt das tatsächliche Objekt zwischenzuspeichern, wird eine schwache Referenz auf das Objekt gespeichert. Der Garbage Collector kann bei Bedarf den von den zwischengespeicherten Objekten belegten Speicher wieder freigeben, und mit einer Referenz-Warteschlange behält man den Überblick über die zurückgeforderten Objekte. Das in Listing A dargestellte Beispiel könnte sehr leicht umgeschrieben werden, um somit als Zwischenspeicher zu funktionieren.

Die Java-Plattform bietet allerdings eine Datenstruktur (eine Klasse namens java.util.WeakHashMap), welche diese Anwendung von Referenzobjekten immens vereinfacht. WeakHashMap funktioniert genau wie eine Hashtabelle, benutzt intern jedoch schwache Referenzen. In der Praxis werden Einträge in der WeakHashMap nach Bedarf zurückgefordert um freien Speicherplatz zu schaffen. Listing D zeigt den Code für einen sehr einfachen WebObject-Zwischenspeicher, der zum Beispiel sehr gut in einem Web-Browser benutzt werden könnte.

Der Zwischenspeicher stellt eine get-Methode zur Verfügung, die eine URL-Adresse erhält und ein Web-Objekt mit dem an dieser Adresse gefundenen Inhalt zurücksendet. Die Objekte werden in einer WeakHashMap gespeichert, sodass sie sich bei einem kurzfristigen erneuten Aufruf möglicherweise noch in der Hashtabelle befinden. Anstatt den Inhalt nochmals herunterzuladen, wird dann gespeicherte Kopie zurückgegeben. Existiert das Objekt nicht im Zwischenspeicher (weil es entweder zuvor noch nicht angefordert oder vom Garbage Collector entfernt wurde), lädt die Klasse das Objekt von der URL-Adresse und speichert eine schwache Referenz in WeakHashMap, bevor sie das Objekt zurückgibt.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Kaspersky warnt vor Cyberangriff auf PyPI-Lieferkette

Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.

5 Tagen ago

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

5 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

5 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

5 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

6 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

6 Tagen ago