- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,当引用指向的对象被删除时,引用会落入 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/
我正在使用 LWJGL 库,不幸的是,每当我的场景图中的节点需要死亡时,我需要自己释放纹理/vbo 缓冲区,我什至无法使用 finalize() 方法来做到这一点'不保证它将在 opengl 库期望的
你能帮我理解 PhantomReference 吗?我知道 PhantomReference 有助于跟踪对象何时从堆中移除,并且在调用 finalize 方法后可以访问。我试图用一些代码弄脏我的手,但
我试图了解 Java 中 PhantomReferences 的工作原理,并为此编写了这个程序。 public static void main(String[] args) throws Inter
来自javadoc : Unlike soft and weak references, phantom references are not automatically cleared by the
Java允许写: new PhantomReference(new Object(), null) 在这种情况下 new Object() 会被收集吗? 据我所知,虚引用是 finalize() 方法
我的问题总结了这一切: 强可达 Java PhantomReference 能否阻止其引用对象的内存被垃圾收集器 (GC) 回收? 详情如下: Callum posted this question也
考虑一个使用 PhantomReferences 来避免终结器的库,同时确保释放一些 JNI 资源。 一种架构涉及引用队列和阻塞在引用队列上执行清理操作的线程。 现在的问题是:如何对这一切进行测试?
假设我创建了一个实现 Closable 的类 MyClass。因此,在 close() 方法中,我将释放一些非常重要的资源。好吧,因为它是非常重要的资源,所以我创建了某种安全网络(如《Effectiv
据我所知,当引用指向的对象被删除时,引用会落入 QueueReference。 这里是一个例子,我正要演示这个,但它不起作用。 if 中的代码从未执行过。这是什么意思。我用错了吗?或者 Garbage
演示代码: import java.lang.ref.PhantomReference; import java.lang.ref.ReferenceQueue; public class Main
关于 PhantomReference 我唯一知道的是, 如果您使用它的 get() 方法,它将始终返回 null 而不是对象。有什么用? 通过使用 PhantomReference,您可以确保对象无
它们都可以用于清理,几乎没有保证,但是 PR 需要更多的线束编码。那么,有两个选择,为什么我必须更喜欢一个而不是另一个? Javadoc 9 describes finalize问题很大,但这并不会自
我一直在阅读这篇关于 PhantomReference https://www.baeldung.com/java-phantom-reference 的文章以及在那里找到的简化示例代码: publi
关于PhantomReference,我唯一知道的是, 如果你使用它的 get() 方法,它总是返回 null 而不是对象。有什么用? 通过使用 PhantomReference,您可以确保对象无法通
Soft 的文档-,Weak - 和PhantomReference都包含类似于以下内容的行(取自 PhantomReference): At that time it will atomically
我有一个共享资源,我想知道有多少其他对象仍在使用该资源。为此,我想使用 PhantomReference。 由于 ReferenceQueue 不跟踪为它们注册的引用(source,“通知”部分),我
这是我的代码 public class FinalizableObject { @Override protected void finalize() throws Throwable
我有一个 PR,一个 PR 指向的对象 O,以及一个为 PR 设置的 RQ。我有一个不断轮询 RQ 的线程,当它在 RQ 中找到第一个引用时,该线程打印它找到它的时间,然后退出。 一切正常,但是当 O
Javadoc 8 PhantomReference 状态: Phantom references are most often used for scheduling pre-mortem clea
正如 Hans Boehm 在 Google I/O '17 演讲“How to Manage Native C++ Memory in Android”中建议我使用 PhantomReference
我是一名优秀的程序员,十分优秀!