phantom-reference相关内容

具有空队列的 PhantomReference

Java允许写: new PhantomReference(new Object(), null) 这种情况下new Object()会被收集吗? 据我了解,幻像引用是 finalize() 方法用法的替代方法. 在队列中出现引用后,我需要做一些额外的操作,然后运行 ​​clear() java 文档保留: 可以使用空队列创建幻像引用,但是这样的引用是完全没用的:它的 ..

什么时候在 Java 中使用幻像引用?

我已经阅读了不同类型的参考资料.我了解强引用、软引用和弱引用的工作原理. 但是当我读到幻像引用时,我无法真正理解它们.也许是因为我找不到任何好的例子来告诉我它们的目的是什么或何时使用它们. 你能告诉我一些使用幻像引用的代码示例吗? 解决方案 我自己从来没有这样做过——很少有人需要它——但我认为这是一种方法 抽象类 ConnectionReference 扩展了 Phantom ..
发布时间:2022-01-05 12:14:14 Java开发

了解 Java 的引用类:SoftReference、WeakReference 和 PhantomReference

有人可以解释三个参考类之间的区别吗(或发布一个很好解释的链接)?SoftReference > WeakReference > PhantomReference,但是我什么时候使用每一个?为什么有 WeakHashMap 而没有 SoftHashMap 或 PhantomHashMap? 如果我使用以下代码... WeakReferenceref = new WeakReference(" ..

Java:强/软/弱/幻象参考之间的区别

我已阅读 这篇文章介绍了Java中不同类型的引用(强、软、弱、幻影),但我不是很懂. 这些引用类型之间有什么区别,每种类型将在什么时候使用? 解决方案 Java 提供了两种不同类型/类的引用对象:strong 和 weak强>.弱引用对象可以进一步分为soft和phantom. 强大 弱 软 幻影 让我们一点一点. 强参考对象 StringBuilder b ..

为什么自Java 9 PhantomReference java doc声明它专用于POST尸体清理操作,尽管之前它是PRE尸体

PhantomReference 用于Java的Java文档8 和更少的样子: 虚拟参考对象,在收集器之后排入队列 确定可以以其他方式收回其推荐对象.幻影 引用最常用于安排事前清理 操作,比Java更加灵活 最终确定机制.如果垃圾收集器确定在 幻影参照物的参照物在某个时间点是 幻影可以到达,那么在那时或以后的某个时间 使参考排队. 为了确保保留可回收对象,引用对象 的幻像引用可能无法检 ..

Soft/Weak/PhantomReferences的原理是清除对引用对象的引用,而引用对象已引用了跟踪的对象

Weak -和 到那时,它将自动清除对该对象的所有幻像引用以及对任何可从该对象到达的任何其他幻像可访问对象的幻像引用. 让我感到困惑的部分是关于其他幻影可到达的对象. 如果我正确理解,则说明此情况: 对象: A B 参考文献: ->:强引用 -P->:幻影参考 -> A -P-> B -> A 因此由于某种原因,垃圾收集器尚未确定B仅是幻像可到达的. ..
发布时间:2020-07-25 02:48:58 Java开发

幻影参考对象

Phantom References用于验尸操作。 Java规范规定,在清除幻像引用本身之前,不会释放幻像引用对象。 我的问题是:这个功能(对象未解除分配)的目的是什么? (我想出的唯一想法是允许本机代码进行事后清理对象,但它并不太令人信服。) 解决方案 我能想到的唯一好的用例,那就是防止重新分配,是某种JNI实现的异步数据源写入引用对象的一种方式,必须告诉它要停下来 - 停 ..
发布时间:2018-12-27 20:06:36 Java开发

何时在Java中使用Weak和Phantom引用

我阅读了很多文章,但我不明白 - 在实践中我需要在哪里使用Weak和Phantom参考?软引用 - 正如我所理解的那样,是缓存的不错选择。但弱和幻影,我不知道何时使用。请提供我们需要使用它们的实际任务示例。 解决方案 您可以使用弱引用进行缓存,就像软引用一样如你所说。 PhantomReferences有什么用?我只知道它们有两个严重的情况:首先,它们允许您确定从内存中删除对象的确切 ..
发布时间:2018-12-27 20:03:38 Java开发

何时在Java中使用幻像引用?

可能重复: 你有没有在任何项目中使用Phantom参考? 我已经阅读了不同类型的参考资料。我理解强大,柔软和弱的引用是如何工作的。 但是当我读到有关幻像引用时,我无法理解它们。也许是因为我找不到任何好的例子来告诉我他们的目的是什么或何时使用它们。 你能告诉我一些使用幻像参考的代码示例吗? 解决方案 我自己从未这样做过 - 很少有人需要它 - 但我认为这是一种方法。 ..
发布时间:2018-12-06 15:09:34 Java开发

了解Java的Reference类:SoftReference,WeakReference和PhantomReference

有人可以解释三个参考类之间的区别(或发布链接到一个很好的解释)? SoftReference > WeakReference > PhantomReference ,但我什么时候会使用每一个?为什么有 WeakHashMap 但没有 SoftHashMap 或 PhantomHashMap ? 如果我使用以下代码... WeakReference< ;字符串> ref = ..

Java:强/弱/弱/幻像参考之间的区别

我已阅读这篇文章这个话题,但我真的不明白。 在描述概念时,请给我一些建议和示例。 解决方案 Java提供两种不同的类型/类参考对象:强和弱。弱引用对象可以进一步分为 soft 和 phantom 。让我们一点一点地去。 强参考对象 StringBuilder builder = new StringBuilder(); 这是参考对象的默认类型/类,如果没有 ..

带空队列的PhantomReference

Java允许编写: $ p $ 新的PhantomReference(new Object(),null) 在这种情况下将会收集新的Object()吗? 据我所知,幻像引用是 finalize()方法的一种替代方法。 在队列中出现引用后,我需要执行一些额外的操作,然后运行 clear() java文档保留: 可以用空队列创建幻影引用,但 这样的引用是完全的无用 ..
发布时间:2018-04-19 18:31:42 Java开发

如何使用PhantomReference作为finalize()替换

Javadoc 8用于 PhantomReference 州: 幻影参考最常用于安排验前清理操作一个比Java终结机制更灵活的方式。 所以我尝试创建一个调用 close()有资格进行垃圾回收的测试对象的方法。 run()尝试获取所有测试对象验前。实际上检索到的测试对象都是 null 。预期的行为是,检索测试对象并调用 close 方法。 无论您创建多少个测试对象,都没有一个测试 ..

为什么我的物体不会死?

我试图实现一种机制,在持有它们的对象死亡时删除缓存的文件,并决定使用 PhantomReference 来获取垃圾回收通知目的。问题是我经常遇到 ReferenceQueue 的奇怪行为。当我更改代码中的某些内容时,它突然不再提取对象。所以我试着让这个例子进行测试,并遇到同样的问题: public class DeathNotificationObject { private stati ..
发布时间:2018-04-19 18:18:12 Java开发