Eine kleine Frage bezüglich der Leistung in einer Java Web App.Java Collections und Garbage Collector
Nehmen wir an, ich habe eine List<Rubrique>
listRubriques
mit zehn Rubrique
Objekte.
Rubrique
A enthält eine Liste von Produkten (List<product>
listProducts
) und eine Liste von Kunden (List<Client>
listClients
).
Was genau im Speicher passiert, wenn ich dies tun:
listRubriques.clear(); listRubriques = null;
Mein Standpunkt, dass sein würde, da listRubriques
leer ist, alle meine Objekte zuvor von dieser Liste verwiesen wird (einschließlich listProducts
und listClients
) werden Müll sammelte sich bald. Aber da Sammlung in Java sind ein wenig kompliziert, und da ich mit meiner app ganz Performance-Probleme haben Ich frage die Frage :)
edit: nehmen wir an, jetzt, dass mein Client-Objekt eine List<Client>
enthält. Daher habe ich eine Art zirkulären Bezug zwischen meinen Objekten. Was würde dann passieren, wenn mein listRubrique
auf null
eingestellt ist? Dieses Mal mein Standpunkt wäre, dass meine Client-Objekte werden "unerreichbar" und könnte ein Speicherleck erstellen?
Vorsicht: Ihr erster Satz beschreibt die aktuelle Implementierung der Sun JVM. Es ist keine Aussage, die im Allgemeinen über Java zutrifft. Der Rest der Antwort scheint allgemein anwendbar zu sein. –
Danke für den Hinweis, ich habe den ersten Satz geändert. – Mnementh