最传统的“参考”的定义是指程序代码中通常存在的参考分配,该分配类似于“对象obj = new Object()”的参考关系。无论如何,只要哪种情况,牢固的参考关系仍然存在,垃圾收集器将永远不会回收参考对象。
它用于描述一些有用的对象,但不必要的对象。相关对象仅软化。在系统中即将发生在异常的内存溢出中之前,这些对象将第二次包含在回收范围中。Abnormal.JDK 1.2版本后,提供了Softreference类以实现软参考。
它用于描述那些不必要的对象,但其强度比软引用弱。与弱参考相关的对象只能在下一个垃圾收集之前生存。当垃圾收集器开始起作用时,无论当前内存是否足够,都将回收出仅与弱参考相关的对象。在JDK 1.2版本之后,提供了弱Reference类以获得弱参考。
它也称为“幽灵引号”或“幻影引用”,它是最弱的关系。是否具有虚拟参考不会影响其生存时间,也无法通过使用虚拟来获得对象实例来获得其生存时间引号。设置对象的关联的唯一目的是在收集器回收此对象时接收系统通知。在JDK 1.2版本后,提供了幻象Reperence类以实现虚拟使用。