我只是想知道什么是幽灵参考?是不是你不必引用一个对象?编辑:对不起,我不清楚,语言是 Java,我读过它是关于链表的。一边读一边写一个LinkedQueue迭代器来支持remove方法的问题。然后,您将有一个幽灵参考。
4 回答
我不确定这是否相同,但我认为您的意思可能是弱参考。
如果不存在非弱引用,弱引用用于具有垃圾收集以引用对象而不阻止垃圾收集删除对象的语言中。
不同的语言对此功能有不同的语义。Java 定义了软引用、弱引用和幻像引用,每个引用的机制略有不同。
这在许多情况下都很有用。例如,在 Blackberry 上,您可以定义一个 Listener 对象来侦听系统事件(例如来电)。当您向系统注册您的侦听器时,它会保留对它的弱引用。这样,当对该对象的所有其他引用都消失时(例如当应用程序关闭时),弱引用不再指向侦听器,并且该侦听器的内存被释放,而程序员不必记住取消注册它。
我想你可能指的是 PhantomReference。
正如我在评论中所说,我不知道幽灵引用,但这篇文章对各种弱引用(弱引用、软引用和幻像)有很好的描述。它甚至提到了这个ReferenceQueue
问题,尽管我必须说我以前没有听说过。
GhostReference
我知道的最新概念是,如果PhantomReference
您想知道它,根据我的经验,您应该了解。了解了这些知识后,你可能会更容易理解。Strong reference
weak reference
soft reference
PhantomReference
简而言之,这些参考只是帮助垃圾收集器更正常地工作。(这意味着有时候,你不需要知道这些概念,你的程序仍然可以运行......在短时间内)