如何弱引用来实现?

编程入门 行业动态 更新时间:2024-10-11 17:24:27
本文介绍了如何弱引用来实现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我不知道如何弱引用在.NET或Java中的内部工作,例如。我的两个总体思路是:

I wonder how weak references work internally, for example in .NET or in Java. My two general ideas are:

  • 在侵入 - 添加弱引用的列表,以最顶级的(对象类)。然后,当一个对象被销毁,所有的弱引用可以迭代,并设置为空。
  • 在非侵入式 - 维护对象的指针一个哈希表,以弱引用的名单。当一个弱引用创建一个对象B,也就会修改或创建的哈希表,其主要是指针到B的项目。
  • 脏 - 存储一个特殊的哈希值与每个对象,当对象被销毁这将是零。弱引用将复制该哈希值,并将它与对象的值将比较,以检查是否该对象是活的。这直接使用的时候,所以就需要与该散列值的附加对象将然而导致访问冲突错误,我想。
  • 两个方案都显得干净,也没有效率。有谁知道它实际上是做了什么?

    Either of these solutions seems clean nor efficient. Does anyone know how it is actually done?

    推荐答案

    不知道我理解你的问题,但你可以看看的实现类的WeakReference和Java中的超类引用。它有很好的注释,你可以看到它有专门的GC,另外一个由虚拟机直接用于处理现场。

    Not sure I understood your question, but you can have a look at the implementation for the class WeakReference and its superclass Reference in Java. It is well commented and you can see it has a field treated specially by the GC and another one used directly by the VM.

    更多推荐

    如何弱引用来实现?

    本文发布于:2023-11-08 06:38:13,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1568616.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:来实现

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!