对象引用类型(Reference)
Java将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)4种。
-
强引用
指程序代码中普遍存在的,类似“Object obj = new Object()”的引用。垃圾收集器永远不会回收被强引用的对象。
-
软引用
指有用但是非必需的对象。在系统发生内存溢出异常之前,会把软引用的对象列入回收范围进行第二次回收,如果回收之后还没有足够的内存才会抛出内存溢出异常。
-
弱引用
非必需对象。被弱引用的对象只能存活到下一次垃圾回收之前。无论当前内存是否够用都会回收掉只被软引用关联的对象。
-
虚引用(幽灵引用、幻影引用)
最弱的引用关系,完全不会对生存时间构成影响。