强引用
在java中最常见的就是强引用。在把一个对象赋给一个引用变量时,这个引用变量就是一个强引用。有强引用的对象一定为可达性状态,所以不会被垃圾回收机制收回。因此,强引用是造成java内存泄漏(Memory Link)的主要原因。
软引用
软引用通过SoftReference类实现。如果一个对象只有软引用,则在系统内存空间不足时该对象将被收回。
弱引用
弱引用通过WeakReference类实现,如果一个对象只有弱引用,则在垃圾回收过程中一定会被回收。
虚引用
虚引用通过phanatom类实现,虚引用和引用队列联合使用,主要用于跟踪对象的垃圾回收状态
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/88403c8c6b3a41bda95308787a8961fd.png)