|Soft vs Weak vs Phantom References|
|Type||Purpose||Use||When GCed||Implementing Class|
|Strong Reference||An ordinary reference. Keeps objects alive as long as they are referenced.||normal reference.||Any object not pointed to can be reclaimed.||default|
|Soft Reference||Keeps objects alive provided there’s enough memory.||to keep objects alive even after clients have removed their references (memory-sensitive caches), in case clients start asking for them again by key.||After a first gc pass, the JVM decides it still needs to reclaim more space.||java.lang.ref.SoftReference|
|Weak Reference||Keeps objects alive only while they’re in use (reachable) by clients.||Containers that automatically delete objects no longer in use.||After gc determines the object is only weakly reachable||java.lang.ref.WeakReference|
|Phantom Reference||Lets you clean up after finalization but before the space is reclaimed (replaces or augments the use of finalize())||Special clean up processing||After finalization.||java.lang.ref.PhantomReference|
This page is posted
Optional Replicator mirror
Please read the feedback from other visitors, or send your own feedback about the site.
Contact Roedy. Please feel free to link to this page without explicit permission.
Your face IP:[188.8.131.52]
You are visitor number|