简谈 JVM 中的几种引用
在 Java 的垃圾回收算法一文中,我们知道 JVM 是根据一个对象有没有被引用来判断要不要对其进行垃圾回收的。但是,如果我们为了提升垃圾回收的效率,想要再把垃圾回收的条件更细化一些,比如只在内存非常紧张的时候才回收某些对象,那么光靠一个粗略的 “引用”,就显得心有余而力不足了。所以,在 JDK 1.2
版本之后,Java 扩充了引用的概念,将其扩充成了强引用
,软引用
,弱引用
,虚引用
四个更细化的概念。
本文将参考《深入理解 Java 虚拟机 (第 3 版)》中再谈引用
一节,简述一下这四种引用的概念,以及被引用的对象何时会被垃圾回收器回收。