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