强引用
存在强引用的对象,永远不会被回收,即使空间不足抛出异常,也不会随便被JVM回收
断开:obj = null;
软引用
内存不足时才被JVM回收
用于:缓存数据,提高数据的获取速度
弱引用
每次JVM回收垃圾都会被回收
用于:短时间缓存某些次要数据
幽灵引用/虚引用
相当于无引用,使对象无法被使用,必须配合引用队列使用
应用:对象进入不可用状态,等待下次JVM垃圾回收,从而使对象进入引用队列中。
引用队列
效果:可以配合软、弱、虚、使用,当对象要被JVM回收时,将其加入引用队列中
应用:通过引用队列可以了解JVM垃圾回收情况