- 虚引用PhantomReference,形同虚设,像没引用,用来跟踪垃圾回收活动
- 必须和ReferenceQueue联合使用
- 可以通过判断ReferenceQueue是否有虚引用,来了解被引用对象是否将要被回收
- 值被回收时放入队列来通知, 用来触发回收堆外内存(用Unsafe的freeMemory())
- 如NIO的直接内存DirectByteBuffer
-
ReferenceQueue<String> queue = new ReferenceQueue<>() PhantomReference<String> phantomRef = new PhantomReference<String>(s, queue)