public class YyPractice {
public static void main(String[] args) {
// 强引用 不会被回收
User u = new User();
// 软引用 内存紧张的时候会被回收
SoftReference sr = new SoftReference(new User());
// 弱引用 不管内存是否足够 系统垃圾回收是必定会回收
WeakReference wr = new WeakReference(new User());
// 虚引用
// 创建一个虚引用队列
ReferenceQueue<User> rq = new ReferenceQueue<User>();
// 创建一个虚引用
PhantomReference<User> pr = new PhantomReference<User>(u, rq);
// 切断引用
u = null;
System.out.println(pr.get()); // null
System.gc();
System.runFinalization();
System.out.println(rq.poll() == pr); // true
}
}java 中的四种引用
最新推荐文章于 2024-08-14 11:30:15 发布
本文通过一个Java示例程序,展示了不同类型的引用(强引用、软引用、弱引用和虚引用)在内存管理中的作用及垃圾回收机制的影响。特别介绍了如何使用PhantomReference类创建虚引用,并监听对象的回收。
1266

被折叠的 条评论
为什么被折叠?



