Tag: 弱引用

Java中是否有SoftHashMap?

我知道在java.util中有一个WeakHashMap,但是因为它使用WeakReferences来处理所有的事情,只有这个Map被引用,所以在下一个GC循环中被引用的对象将会丢失。 所以如果你想要caching随机数据,这几乎是没有用的,而这些数据很可能在没有被其他时间硬连接的情况下再次被请求。 最好的解决scheme是使用SoftReferences的地图,但是我没有在Java RT Package中find它。

为什么存在WeakHashMap,但缺lessWeakSet?

从J.布洛赫 一个…内存泄漏的来源是侦听器…确保callback是垃圾回收的最好方法是只存储对它们的弱引用,例如,只将它们作为键存储在WeakHashMap中 。 那么,为什么Java Collections框架中没有任何WeakSet呢?

作为弱引用的听众的优点和缺点

把听众保持为WeakReferences有什么优点和缺点? 大的“专业”当然是这样的: 将侦听器添加为WeakReference意味着侦听器不需要打扰“删除”本身。 更新 对于那些担心只有引用该对象的监听者,为什么不能有2个方法,addListener()和addWeakRefListener()? 那些不在意拆卸的人可以使用后者。

__weak和__block引用有什么区别?

我正在阅读Xcode的文档,这里是让我感到困惑的东西: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 以下内容是从文档复制的: 一个块形成了它捕获的variables的强有力的参考。 如果你在一个块中使用self ,那么这个块就形成了一个强烈的self引用,所以如果self也有一个强烈的块引用(它通常会这样做),就会产生一个强大的引用循环。 为了避免这个循环,你需要在块的外部创build一个弱的(或__block )引用,就像上面的例子。 我不明白“弱(或__block )”是什么意思? 是 __block typeof(self) tmpSelf = self; 和 __weak typeof(self) tmpSelf = self; 这里完全一样吗? 我在文件中发现了另一篇文章: 注意:在垃圾回收环境中,如果将__weak和__block修饰符同时应用于某个variables,则该块将不会确保它保持活动状态。 所以,我完全不解。

弱的参考收益

有人可以解释在C#中不同types的引用的主要好处吗? 弱引用 软参考 幻影参考 强烈的参考。 我们有一个消耗大量内存的应用程序,我们正试图确定这是否是一个需要关注的领域。

是否有可能在JavaScript中创build一个“弱引用”?

有什么办法在JavaScript中创build一个“弱引用”到另一个对象? 这里是维基页面描述什么是弱引用。 这是另一篇文章,用Java描述它们。 任何人都可以想到一种方法来在JavaScript中实现这种行为?

了解Java的引用类:SoftReference,WeakReference和PhantomReference

有人可以解释三个参考类之间的差异(或链接到一个很好的解释)? SoftReference > WeakReference > PhantomReference ,但是什么时候使用每个? 为什么有一个WeakHashMap但没有SoftHashMap或PhantomHashMap ? 如果我使用下面的代码… WeakReference<String> ref = new WeakReference<String>("Hello!"); if (ref != null) { // ref can get collected at any time… System.gc(); // Let's assume ref gets collected here. System.out.println(ref.get()); // Now what?! } …怎么了? 每次发言之前,我是否需要检查ref是否为空(这是错误的,但是我应该怎么做)? 对不起,快速的问题,但我无法理解这些Reference类…谢谢!

有弱引用的实际用途吗?

可能重复: 弱引用 – 它们有多有用? 由于垃圾收集器可以随时声明弱引用,是否有使用它们的实际原因?

爪哇:强/软/弱/幻影参考之间的区别

我已经阅读了这篇关于这个话题的文章 ,但我并不是很了解它。 在描述概念时,请给出一些build议和示例。

我如何在Swift中声明一个弱引用数组?

我想在Swift中存储一个弱引用数组。 数组本身不应该是一个弱引用 – 它的元素应该是。 我觉得cocoaNSPointerArray提供了一个非types安全的版本。