Welche Klassen der Java-Standard-API können Speicherlecks verursachen, wenn sie (nicht offensichtlich) inkorrekt verwendet werden? Und wie können diese Speicherlecks vermieden/behoben werden?Speicherleck-Traps in der Java-Standard-API
Beispiel:ObjectInputStream
und ObjectOutputStream
halten Verweise auf alle Objekte, die sie um gesehen haben als Referenzen nachfolgende Vorkommen des gleichen Objekts zu senden, anstatt Kopien (und damit umgehen mit zirkulären Referenzen). Dies führt zu einem Speicherverlust, wenn Sie einen solchen Stream unbegrenzt offen halten (z. B. wenn Sie ihn für die Kommunikation über das Netzwerk verwenden).
Fix: Call reset() periodisch oder nach jedem Top-Level-Objekt.
@Michael - vielleicht bewegen Sie Ihr Beispiel zu einer Antwort von selbst? –