问题标签 [phantom-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
2388 浏览

java - 幻像引用的对象

幻影参考用于事后操作。Java 规范指出,在清除幻像引用本身之前,不会释放幻像引用的对象。

我的问题是:这个功能(对象未释放)有什么用途?

(我想出的唯一想法是允许本机代码对对象进行事后清理,但这并没有多大说服力)。

0 投票
4 回答
7064 浏览

java - 什么是幽灵参考?

我只是想知道什么是幽灵参考?是不是你不必引用一个对象?编辑:对不起,我不清楚,语言是 Java,我读过它是关于链表的。一边读一边写一个LinkedQueue迭代器来支持remove方法的问题。然后,您将有一个幽灵参考。

0 投票
2 回答
3253 浏览

garbage-collection - 幻影参考如何工作?

API文档说

此引用类型与其他引用类型的不同之处在于,它不是用于访问对象,而是作为对象已经完成的信号,并且垃圾收集器已准备好回收其内存。

如果幻影引用不能用于访问对象,垃圾收集器如何回收该对象使用的内存?

0 投票
4 回答
189 浏览

php - $n = 2; 10-$n = 87

好吧,这就是我正在做的事情:

输出是:

我的猜测是它被视为字符串,但我该如何解决?

所以,我想知道的是
(10-($total[1])); = 87?


更新:
是的,我的错误,幻影 7,
但现在谁能告诉我原因:

输出:6014359000000928 % 8 资源:7

0 投票
4 回答
21716 浏览

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

有人可以解释三个参考类之间的区别(或发布一个很好的解释的链接)吗?SoftReference> WeakReference> PhantomReference,但我什么时候会使用每一个?为什么有一个WeakHashMap但没有SoftHashMapPhantomHashMap

如果我使用以下代码...

...怎么了?我是否必须ref在每条语句之前检查是否为空(这是错误的,但我该怎么)?很抱歉这些快速的问题,但我无法理解这些Reference课程......谢谢!

0 投票
4 回答
552 浏览

c++ - 成员函数指针和幻象类

我一直在搞乱与先前问题相关的成员函数指针。在下面的代码中,我调用类 (B) 上的方法来更改其中的变量(计数),但我从未创建此类的实例。为什么这行得通?

(对不起,我又来了,但是这个成员函数指针让我很痒)

0 投票
2 回答
550 浏览

android - 幻影联系人帐户出现 - Android

我正在编写一个应用程序,允许用户从名称列表中进行选择,然后将其中一个名称(带有电话号码等)添加到他们的联系人中。当我检索手机的联系人帐户列表时,我得到 3 个结果:“电话”、“a000000229aa3e....”、“Gmail”。

中心结果“a000000229aa3e....”不是我设置的帐户,也不是我手机上其他任何地方出现的帐户。这也不会出现在模拟器中。

我的同事在热门 Droid(原始 Droid)上运行它并没有得到奇怪的帐户。我在 Droid X 上运行它。

有谁知道这个联络组来自哪里?我需要做些什么来过滤掉它吗?


我能够获取奇怪联系人帐户的名称和类型: 帐户名称:a00000229aa3e5-8877431712057062230@random.svcmot.com 帐户类型:com.motorola.blur.service.bsutils.MOTHER_USER_CREDS_TYPE

0 投票
1 回答
1460 浏览

java - Java中不同引用类型的使用

我最近一直在玩 Java 中的软、弱和幻像引用类型,并且一直想知道它们是否有任何我没有遇到过的用途。我过去曾将它们用于各种事情,它们总是属于以下类别:

  • 使用幻像引用代替终结器 - 我更喜欢这个,因为死对象复活的可能性为 0
  • 在 hashmap 中使用弱引用来保存 object=>value 映射,其中仅当对象存在于其他地方时映射才应存在(当需要向库中的对象添加额外信息时很有用,例如其源不能是修改的)
  • 使用软引用进行缓存(比弱引用效果更好,因为 JVM 将它们保留更长时间,并且只有在需要时才放手。)

但是,那里只有 3 种用途,我敢说还有很多我从未遇到过的可能有用的东西。欢迎所有建议!

0 投票
3 回答
822 浏览

java - finalize 方法如何与 java 中的幻像引用一起工作

嗨,我对幻影参考有一个疑问。我所理解的 finalize 方法是在对象进行垃圾收集之前调用的。但是有时如果对象不符合垃圾回收条件,则 finalize 方法将不会执行。

现在谈论这个 finalize 方法将被调用时的幻像引用。

总是在幻像引用中调用 finalize。

我对此很困惑。请帮我。

0 投票
2 回答
337 浏览

java - 在一个集合中混合不同的引用类型

SoftReference, WeakReference,PhantomReference可用于自定义垃圾回收的过程。所有这些都扩展Reference<T>,因此可以将它们混合在单个集合中。硬引用(最常见的)没有扩展Reference<T>,因此不可能在一个集合中混合硬引用和其他类型的引用。我是对的,我们应该把CustomReference<T> extends Reference<T>所有类型的对象链接混合在单个集合中,我们应该把它放入集合中Collection<Reference<T>>吗?

更新:因此,在编写SSCCE时,我发现无法以Reference<T>通常的方式进行扩展(构造函数是包本地的)。

所以问题现在更新到以下内容:我可以使用单个集合类创建缓存,它总是保存一些对象(比如 10 个),而其他对象在内存不允许时由 GC 回收?除了为硬引用和软引用提供自定义包装器并将它们存储在集合中之外,还有其他方法可以做到这一点吗?