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