我知道弱引用是一个很好的选择记忆 http://en.wikipedia.org/wiki/Memoization潜在的大量数据,以及维基百科关于弱引用的文章 http://en.wikipedia.org/wiki/Weak_reference仅列出“跟踪应用程序中引用的当前变量”和语句“弱引用的另一个用途是写入缓存”。
What are some other situations (more specific than just "caching results") where the use of weak references is A Good IdeaTM?
弱引用的主要正确用途是识别其重要性的事物源于对它们的强烈引用的存在。两种最常见的情况是:
对象持有对某事物的引用,不是因为它“关心”所讨论的对象,而是因为关心该对象的其他实体可能希望它用它做某事。如果一段时间后没有人再关心该对象,那么其他实体就没有理由继续代表“所有关心它的实体”来操纵它。
保存对同一不可变对象的许多引用的内存成本可能比保存对许多相同对象的引用的内存成本低得多,并且比较对同一对象的引用可能比比较相同对象快得多。创建不可变对象、放弃它、收集它以及创建相同对象的内存成本本质上与创建对象并随后返回对其的第二个引用的成本相同。返回对现有对象的引用无论如何都必须保留是一次巨大的胜利;返回对符合收集条件但尚未被收集的对象的引用可能是也可能不是胜利(通常是轻微的胜利,但在分代 GC 中有时会稍微损害性能);在许多情况下,后一种好处不足以证明使物体的存活时间比原本必要的时间更长是合理的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)