@JVM中对象的引用类型

JVM中有四种引用类型:强引用、软引用、弱引用、虚引用
 
强引用(Stong Reference):是指在程序代码中普遍存在的,类似:Object obj = new Object()这类的引用,只要强引用存在,gc永远不会回收掉被引用的对象;
 
软引用(Soft Reference):用来描述一些还有用,但并非必需的对象。对于软引用关联着的对象,在系统将要发生内存溢出异常之前,将会把这些对象列进回收范围之中并进行第二次回收。如果这次回收还是没有足够的内存,才会抛出内存溢出异常;
 
弱引用(Weak Reference):用于描述非必需对象,但是强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发生之前。当垃圾收集器工作时,无论当前内存是否足够,都会回收弱引用关联的对象;
 
虚引用(Phantom Refenrece):对对象的生存时间无影响,无法通过虚引用来取得对象实例。它的唯一目的就是希望能在这个对象别回收时收到一个系统通知。
原文地址:https://www.cnblogs.com/winner-0715/p/4994419.html