gpt4 book ai didi

java - 使用 PhantomReference 的例子

转载 作者:行者123 更新时间:2023-11-30 08:06:42 28 4
gpt4 key购买 nike

据我所知,当引用指向的对象被删除时,引用会落入 QueueReference

这里是一个例子,我正要演示这个,但它不起作用。 if 中的代码从未执行过。这是什么意思。我用错了吗?或者 GarbageCollector 在执行期间没有工作?

public static void main (String[] arg) throws InterruptedException {
List<String> names = Arrays.asList("Adam", "Eva");
ReferenceQueue<List<String>> q = new ReferenceQueue<>();
PhantomReference<List<String>> phantom = new PhantomReference<>(names, q);
names = null;
while(true){
PhantomReference ref2 = (PhantomReference)q.poll();
if(ref2 != null)
System.out.println(ref2.enqueue());
Thread.sleep(1000);
}
}

最佳答案

PhanomReference 会在 GC 运行时被清除,试试 System.gc() :

    while (true) {
System.gc();

关于java - 使用 PhantomReference 的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34205851/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com