Answer
SoftReference cleared when memory is low; used for caching.
WeakReference cleared during GC if no strong references exist.
PhantomReference used for cleanup before object collection.
WeakReference cleared during GC if no strong references exist.
PhantomReference used for cleanup before object collection.