强引用
:代码之中普遍存在,类似“Object obj = new Object
()
”
这类的引用,只要强引用存在,垃圾收集器永远都不会回收这类引用的对象。
软引用
:用来描述一些还有用但是并非必须的对象。
如果一个对象只具有软引用,则内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。
弱引用
:被引用关联的对象只能存活到下一次垃圾回收之前。
虚引用:为这个对象设置引用的唯一目的就是能在这个对象被收集器回收时收到一个系统通知。
摘自:《深入理解Java虚拟机》第二版