Danke für die Antwort, genau nach dieser Antwort hab ich gesucht.
Ich poste die Erklärung trotzdem noch:
----------------------------------------------------------------------
Destruktor
Ein Konstruktor wird aufgerufen, wenn das Objekt einer Klasse erzeugt
wird. Damit beginnt der Lebenszyklus des Objekts, der dann endet, wenn
das Pendant des Konstruktors aufgerufen wird: der Destruktor. Im
Destruktor sind oft Anweisungen enthalten, um die von einem Objekt
zusätzlich beanspruchten Fremdressourcen freizugeben, die beispielsweise
andere Systeme belasten. Dazu gehören unter anderem Netzwerk- oder
Datenbankverbindungen, die in einer objektinternen Referenz vorgehalten
werden.
Der Umstand, der zur Aufgabe eines konkreten Objekts und dem damit
verbundenen Destruktoraufruf führt, kann
das Verlassen des Gültigkeitsbereichs der Objektvariablen oder
die Zuweisung von null an die Objektreferenz
sein. Das bedeutet jedoch nicht, dass beim Eintreten einer dieser beiden
Bedingungen augenblicklich der Destruktor ausgeführt wird. Tatsächlich
kann das noch eine unbestimmbare Zeit dauern. Mit anderen Worten
bedeutet dies, dass das Objekt zwar aus Sicht des Programms nicht mehr
existiert, sich jedoch immer noch im Speicher befindet und diesen
letztendlich belastet.
-------------------------------------------------------------