1.概念
虚引用是所有类型中最弱的一个。一个持有虚引用的对象,和没有引用几乎是一样的,随时可能被垃圾回收器回收。当试图通过虚引用的get()方法取得强引用时,总是会失败。并且,虚引用必须和引用队列一起使用,它的作用在于跟踪垃圾回收过程。
2.应用场景
可以用来跟踪对象被垃圾回收器回收的活动,当一个虚引用关联的对象被垃圾回收器回收之前会收到一条系统通知。
3.实例
Tracker(String path, FileDeleteStrategy deleteStrategy, Object marker, ReferenceQueue super Object> queue) {
//marker是具体的虚引用对象
super(marker, queue);
this.path = path;
this.deleteStrategy = deleteStrategy == null ? FileDeleteStrategy.NORMAL : deleteStrategy;
}4.总结
强引用:从来不会被回收
软引用:当内存不足时会被回收
弱引用:正常垃圾回收时回收
虚引用:任何时刻都会被垃圾回收器回收