CONTENT | PREV | NEXT

3.1 Grad der Erreichbarkeit

 
1. (strongly) reachable
  • Objekt ist ausschließlich durch Ketten von starken Referenzen erreichbar
  • Garbage Collector darf dieses Objekt nicht freigeben
2. softly reachable
  • Objekt ist nur durch Pfade erreichbar, die mindestens eine Softreferenz enthalten (starke Referenzen sind auch zulässig)
  • Garbage Collector versucht ein softly reachable Objekt solange wie möglich im Speicher zu behalten (erst kurz vor einem OutOfMemoryError sollte der Referent gelöscht werden und in eine ReferenceQueue eingefügt werden)
  • Objekte, auf die längere Zeit nicht zugegriffen wurde, sollten dabei zuerst gelöscht werden
  • Anwendungsbereich: Caches
3. weakly reachable
  • Objekt ist nur durch Pfade erreichbar, die mindestens eine Weakreferenz enthalten (starke Referenzen und "softe" Referenzen sind auch zulässig)
  • Garbage Collector entfernt immer ein weakly reachable Objekt, d.h. alle Weak Referenzen zu diesem Objekt und alle weakly reachable Objekte, die dieses Objekt durch eine Kette von starten und "soften" Referenzen referenzieren, werden gelöscht
  • zum Zeitpunkt des Löschens oder kurz darauf wird die Weak Referenz in eine ReferenceQueue eingefügt
  • Anwendungsbereich: Canonical Mappings (Zusätzliche Informationen werden an ein Objekt angehängt, ohne daß seine Struktur verändert wird. Sobald das Objekt vom Heap entfernt wird, sollen auch die externen Informationen gelöscht werden.)
4. phantomly reachable
  • Objekt ist nur durch Pfade erreichbar, die mindestens eine Phantomreferenz enthalten (alle anderen Referenzen sind auch zulässig)
  • Garbage Collector fügt ein phantomly reachable Objekt nur in eine ReferenceQueue ein (die Phantom Referenz wird weder gecleared noch wird das Objekt vom Heap entfernt)
  • Phantom Objekte sind sozusagen schon finalized() aber noch immer im Speicher
  • erst, wenn alle Phantom Referenzen auf das Objekt gecleared wurden oder selber unreachable werden, wird das Objekt gelöscht
  • Anwendungsbereich: pre-mortem Cleanup (die Phantom Referenz erscheint in einer ReferenceQueue, so daß die Anwendung weitere Aufräumarbeiten starten kann)
5. unreachable
  • es existiert kein Pfad vom Root Set zu diesem Objekt
  • Garbage wird beseitigt

 


strengths of object reachability



 
 
 
© 1999 sven.buergel@informatik.tu-chemnitz.de