Java中有四种类型的引用:强引用、软引用、弱引用、虚引用。强、软、弱、虚按照强调依次递减。
一、强引用
强引用是我们使用的最多类型。只要强引用关系还存在,垃圾回收器就不会回收该对象,无论内存充足与否。
使用方式:通过new实例出来的对象
Object object = new Object()
二、软引用
在缓存的时候会使用到软引用和弱引用。在快要发生内存溢出之前,把这些对象列入回收范围二次回收。
使用方式:通过SoftReference类来实现
SoftReference<Object> sr = new SoftReference<Object>(obj)
三、弱引用
在缓存的时候会使用到软引用和弱引用。内存无论是否足够,都会被回收。使用WeakHashMap可以避免内存泄漏。
使用方式:通过WeekReference类来实现
WeekReference<Object> wr = new WeekReference<Object>(obj)
四、虚引用
无法通过虚引用来获取一个对象的实例,为一个对象设置虚引用关联的唯一目的就是在被回收时收到一个系统通知,对对象回收的跟踪。