Laden...

Was wird hier eigentlich gelöscht?

Erstellt von Martin_Jansen vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.296 Views
Martin_Jansen Themenstarter:in
7 Beiträge seit 2006
vor 17 Jahren
Was wird hier eigentlich gelöscht?

Hallo,
wenn ich folgende Anweisungen durchführe...


List<myClass> liste = new List<myClass>();
liste.add(new myClass(a,b,c));

..wird eine neue Instanz von myClass erstellt und nur eine Referenz in der Liste gespeichert - oder?


liste.clear();

Jetzt wird ja die Liste geleert und die Referenz ist futsch, aber was ist mit der Instanz - ist die nun auch aus dem Speicher gelöscht oder kursiert die noch irgendwo rum?

MfG Martin

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
die Instanz wird so lange deinen Speicher bewohnen, bis der Garbage-Collector sie wegräumt.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Martin_Jansen,

richtig, es wir erstmal nur die Referenz gelöscht, allerdings kann spätestens, wenn das die letzte war, der GC zuschlagen, wenn er das nächste mal aufräumt.

herbivore

Martin_Jansen Themenstarter:in
7 Beiträge seit 2006
vor 17 Jahren

das heißt ich muss mir hier keine Gedanken darum machen, ob ich nicht den Speicher vollmülle, auch wenn ich die Liste nach einer Löschaktion wieder vollpacke mit neuen Instanzen...

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Martin_Jansen,

nein, du musst dir keine Gedanken machen. Der GC ist ja gerade dafür, dass man sich keine Gedanken mehr darum machen muss.

herbivore