ToB企服应用市场:ToB评测及商务社交产业平台
标题:
PhantomReference 和 WeakReference 究竟有何不同
[打印本页]
作者:
伤心客
时间:
2024-6-19 21:17
标题:
PhantomReference 和 WeakReference 究竟有何不同
本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。
提示:
为了方便各人索引,特将在上篇文章
《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》
中讨论的众多主题独立出来。
PhantomReference 和 WeakReference 假如仅仅从概念上来说其实很难区别出他们之间究竟有何不同,比如, PhantomReference 是用来跟踪对象是否被垃圾回收的,假如对象被 GC ,那么其对应的 PhantomReference 就会被参加到一个 ReferenceQueue 中,这个 ReferenceQueue 是在创建 PhantomReference 对象的时候注册进去的。
我们在应用程序中可以通过检查这个 ReferenceQueue 中的 PhantomReference 对象,从而可以判断出其引用的 referent 对象已经被回收,随即可以做一些开释资源的工作。
[code]public class PhantomReference extends Reference { public PhantomReference(T referent, ReferenceQueue
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4