# [LibGDX/Java] ArrayList Object Speicher



## GentleXD (22. Mai 2018)

Schönen guten Tag,

ich habe mal eine Frage im Bezug auf ArrayLists. Ich programmiere momentan ein Spiel, in Java und LibGDX. Ich speichere eine Welt in einer ArrayList. Dabei handelt es sich manchmal um mehrere 1000 Objekte. Auch wenn ich diese in Chunks unterteile ändert das nichts an folgendem Problem. Wenn ich jetzt von dem einen in den anderen Chunk gehe, und den alten Chunk lösche. Lösche ich bisher auch immer die ArrayList mit z.b. "entities.clear();", aber soweit ich das jetzt verstanden habe löscht es nur die Referenz zu den einzelnen Objekten aber löscht diese nicht aus dem Speicher. Jetzt wäre es aber ziemlich ineffizent auf Dauer mehrere 1000 Objekte im virtuellen Speicher zu haben. Meine Frage ist jetzt, ist es wirklich so wie ich es beschrieben habe und wenn ja was kann man dagegen unternehmen?

Ich hoffe auf Antworten,

GentleXD


----------



## fhoffmann (22. Mai 2018)

Objekte, auf die es keine Referenz mehr gibt, werden "irgendwann" automatisch gelöscht.


----------



## GentleXD (22. Mai 2018)

Okay danke, für die schnelle Antwort.


----------



## JuKu (25. Mai 2018)

@GentleXD Wie @fhoffmann bereits sagte, gibt es genau dafür den Garbage Collector.
Dieser räumt regelmäßig auf, indem er genau schaut, welche Objekte noch wozu eine Relation besitzen (also wo die Referenz auf dieses Objekt noch gespeichert ist) und wenn keine Referenz mehr besteht, dann wird dieses Objekt beim nächsten Durchlauf (alle paar Sekunden) einfach aus dem Speicher gelöscht.


----------

