阅读这篇文章
关键要点是:
您可以将直接引用视为强大的引用,不需要额外的代码即可创建或访问该对象。其余三种引用类型是在java.lang.ref包中找到的Reference类的子类。软引用由SoftReference类提供,弱引用由WeakReference类提供,幻像引用由PhantomReference提供。
软引用的作用类似于数据缓存。当系统内存不足时,垃圾收集器可以任意释放唯一引用为软引用的对象。换句话说,如果没有对对象的强引用,则该对象是释放对象。垃圾收集器需要在释放OutOfMemoryException之前释放所有软引用。
弱引用比软引用弱。如果对对象的唯一引用是弱引用,则垃圾收集器可以随时回收对象使用的内存。不需要内存不足的情况。通常,对象使用的内存在垃圾收集器的下一个阶段中回收。
虚拟引用与清理任务有关。它们在垃圾回收器执行终结处理并释放对象之前立即提供通知。考虑它是在对象内执行清理任务的一种方法。
其次是WeakListModel清单,我不会发布该清单以避免混淆此响应。



