Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ?

waxxaw

Mitglied
Hallo,
Joa die Frage steht Oben, jedoch bin ich mir nicht wirklrich sicher ob man das überrhaubt so fragen kann :bahnhof:

game.setScreen( new X());

game.setScreen( new Y());

game.setScreen( new X());


Was passiert jetzt rein theoretisch mit der ertsten Instanz die ich von der Klasse X aufgerufen hab?
wird sie automatisch gelöscht oder muss ich da noch etwas machen damit das nicht Ressourcen verbraucht?
 
Zuletzt bearbeitet:
Der GarbageCollector sucht periodisch nach Objekten, auf die keine Referenz mehr verfügbar ist. Speicherst du die Objekte also nicht ab, wird der RAM nach einiger Zeit wieder freigegeben. Mit dem Aufruf System.gc () rufst du den collector von Hand auf.
 
Bei dem Beispiel oben würde ich sagen, dass in dem Game-Objekt jetzt eine Referenz auf das durch newX() erzeugte Objekt existiert.
Diese Referenz existiert, bis das Game-Objekt selbst gelöscht, oder die alte Referenz überschrieben/gelöscht wird, wie beim zweiten "setScreen(new X())"

Bei sowas: "new Game().createBoard()" o.ä. denke ich, dass das durch "new Game()" erzeugte Objekt nicht mehr referenziert und dementsprechend vom GarbageCollector aufgeräumt wird.
 

Neue Themen


Zurück
Oben