JVM虚拟机的学习笔记四(JVM的引用)
对于强、软、弱、虚这四种引用对象的垃圾回收特点的描述,都是指的在引用关系还存在的情况下:
-
强引用(StrongReference):最传统的“引用”的定义,是指在程序代码之中普遍存在的引用赋值,即类似“0bject obj=new object( )”这种引用关系。无论任何情况下,只要强引用关系还存在,垃圾收集器就永远不会回收掉被引用的对象。
-
软引用(SoftReference) :在系统将要发生内存溢出之前,会把这些对象列入回收范围之中,以备进行第二次(第一次指的是回收了不可触及的垃圾对象)垃圾回收的时候回收它们。如果这次回收后还没有足够的内存,才会抛出内存溢出异常。
-
弱引用(WeakReference) :被弱引用关联的对象只能生存到下一次垃圾收集之前。当垃圾收集器工作时,无论内存空间是否足够,都会回收掉被弱引用关联的对象。
-
虚引用(PhantomReference) :一个对象是否有虛引用的存在,完全不会对其生存时 间构成影响,也无法通过虚引用来获得一个对象的实例。为一个对象设置虛引用关联的唯一目的就是能在这个对象被收集器回收时收到一个系统通知(回收跟踪)。

浙公网安备 33010602011771号