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