什么是幽灵参考?

时间:2009-11-03 18:08:18

标签: java reference phantom-reference

我只是想知道幽灵参考是什么?是不是你不需要引用一个对象?编辑:对不起,我不清楚,langauge是Java,我读了它关于链表。在阅读问题时写一个LinkedQueue迭代器来支持remove方法。然后,你会有鬼参考。

4 个答案:

答案 0 :(得分:3)

我不确定这是否相同,但我认为你的意思可能是weak reference

如果没有非弱引用,则在具有垃圾收集的语言中使用弱引用来引用对象,而不阻止垃圾收集删除对象。

不同的语言对此功能具有不同的语义。 Java定义了soft,weak和phantom引用,每个引用的机制略有不同。

这在许多情况下都很有用。例如,在Blackberry上,您可以定义一个侦听系统事件的侦听器对象(例如进入的调用)。当您向系统注册侦听器时,它会对其进行弱引用。这样,当对该对象的所有其他引用消失时(例如当应用程序关闭时),弱引用不再指向侦听器,并且释放该侦听器的内存,而程序员不必记住取消注册它。

答案 1 :(得分:1)

我想你可能指的是PhantomReference。

答案 2 :(得分:0)

正如我在评论中所述,我不知道 ghost 引用,但this article对各种弱引用(弱,弱,和幻影)。它甚至提到ReferenceQueue问题,但我必须说我之前没有听说过。

答案 3 :(得分:0)

GhostReference我知道的最新概念是PhantomReference,如果您想了解它,根据我的经验,您应该了解Strong reference然后weak reference然后{{ 1}}。在这些知识之后,您可能更容易理解soft reference

简而言之,这些参考只是帮助garbarge收藏家更正确地工作。 (这意味着有时候,你不需要知道这些概念,你的程序仍然可以在短时间内运行)