Java-hashmaps und memory leaks

Ich habe eine Konsole Java-Anwendung, die einige Daten aus der Datenbank. Da die Anwendung ständig läuft, alle 30 Sekunden, zu senken, um die Belastung der DB verwende ich eine Art cache für die Daten.

Weil es nicht eine große Menge der benötigten Daten in der Datenbank, ich bin mit der singleton-Hashmap als mein cache. Mein cache-Klasse sieht wie folgt aus:

public class Cache extends Hashmap<Integer, Hashmap<Integer, ArrayList<String>> {
//some code
}

Alle 5 Minuten system wird der cache aktualisiert von:

1) Aufruf von "clear()" für die vorhandenen Daten
2) füllen den cache mit neuen Daten aus der db.

Sagen Sie mir, wenn ich die "clear()" für die Struktur, die ich habe ("nested" hashmaps) Java deaktivieren Sie alle Daten containd unter meinem cache-keys, oder werde ich am Ende mit Speicherlecks?

Kurze Antwort: ja, klar() funktioniert perfekt. Lange Antwort (und es scheint, als ein Duplikat): stackoverflow.com/questions/16231387/...
Es löst die key/value-Objekte in der map, sondern hält die backing-array/Tabelle.
Klingt wie ein memory leak. Haben Sie sorgte dafür, dass alle relevanten db-bezogene Objekte dont beziehen sich auf Elemente in Ihrem hashmaps? ...z.B. ResultSet usw

InformationsquelleAutor guest86 | 2013-09-04

Schreibe einen Kommentar