Garbage Collection
- State the behavior that is guaranteed by the garbage collection system.
- Write code that explicitly makes objects eligible for garbage collection.
- Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.
State the behavior that is guaranteed by the garbage collection system.
Write code that explicitly makes objects eligible for garbage collection.
Recognize the point in a piece of source code at which an object becomes eligible for garbage collection.
Hier sind alle drei Themen zusammengefasstGarbage collection (Müllabfuhr)
- sorgt dafür, dass der Speicherplatz von einem Objekt wieder freigegeben wird, welches nicht mehr benutzt wird bzw. keine Referenzen hat.
- Garbage Collection läuft mit niedriger Priorität im Hindergrund.
- Ein Objekt ist dann unerreichbar, wenn keine Referenzen auf dieses Objekt zeigt, somit können diese Objekte aus dem Speicher entfernt werden.
- Bevor der Speicher freigegeben wird, ruft Garbage Collection einmal die Methode finalize() auf. Diese Methode ist
- Man kann Garbage Collection nicht erzwingen, den Speicher aufzuräumen. Wann der Garbage Collection den Speicher aufräumt und ob er aufräumt, kann man nicht vorhersehen, d.h. es gibt keine Garantie, dass Garbage Collection aufräumt.
- Man kann auch nicht vorhersehen, in welcher Reihenfolge den Speicher aufräumt, d. h. welche Objekte in welcher Reihenfolge aus dem Speicher entfernt.
- Will man selber Garbage Collection nutzen, muss man die geerbte Methode finalize() aufrufen und alle Instanzen auf das Objekt löschen. Es ist trotzdem nicht sichergestellt, dass Garbage Collector aufräumt.
- Die Aufräumarbeiten kann man erleichtern, wenn man die Referenzen auf die Objekte, die nicht mehr gebraucht werden, auf null setzt.
- Man kann den Garbage Collector anweisen, mit dem Befehl System.gc() aufzuräumen, er muss es aber nicht.