87得票11回答
为什么关键字“weak”只能应用于类和绑定类协议类型?

当我在Swift中将变量声明为weak时,有时会从Xcode收到以下错误消息: 'weak' may only be applied to class and class-bound protocol types 或者 'weak' must not be applied to n...

82得票2回答
为什么存在WeakHashMap,但不存在WeakSet?

来源自J. Bloch 内存泄漏的一个主要源头之一是监听器。为确保回调能够及时垃圾回收,最好的方法是仅使用弱引用存储它们,例如仅将其作为键存储在WeakHashMap中。 那么,为什么Java集合框架中没有WeakSet呢?(参考)

82得票4回答
了解Java的引用类:SoftReference、WeakReference和PhantomReference。

有人能解释一下这三个引用类之间的区别吗(或者发一个好的解释的链接)?SoftReference > WeakReference > PhantomReference,但是我什么时候该使用每种引用呢?为什么有一个WeakHashMap,但没有SoftHashMap或PhantomHashMap?...

82得票4回答
__weak引用和__block引用有什么区别?

我正在阅读Xcode的文档,这里有一些令我困惑的内容:__block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; 以下内容摘自官方文档: 块会对其...

77得票2回答
weak_ptr是如何工作的?

我知道如何使用weak_ptr和shared_ptr。我知道shared_ptr是通过计算其对象中引用的数量来工作的。那么weak_ptr是如何工作的呢?我尝试阅读了boost源代码,但我对boost不够熟悉,无法理解它使用的所有内容。 谢谢。

76得票14回答
监听器作为弱引用的优缺点

将监听器保留为弱引用的优缺点是什么? 显然最大的“优点”是: 将监听器作为弱引用添加,意味着监听器不需要费心“移除”自己。 对于那些担心监听器是对象唯一引用的人,为什么不能有两种方法:addListener()和addWeakRefListener()? 那些不关心移除的人可以使用后者。

75得票3回答
弱引用的好处

有人能解释 C# 中不同类型引用的主要优点吗? 弱引用 软引用 幻影引用 强引用。 我们有一个消耗大量内存的应用程序,我们正在尝试确定这是否是一个需要关注的领域。

75得票5回答
Java的WeakHashMap和缓存:为什么它引用键而不是值?

Java的WeakHashMap通常被认为是很有用的缓存工具。但奇怪的是,它的弱引用是按照映射的键而不是值来定义的。我的意思是,我想要缓存的是值,并且只有当除了缓存之外没有其他人强烈地引用它们时,我才想让它们被垃圾回收掉,对吧? 持有键的弱引用有什么帮助呢?如果你使用ExpensiveObj...

71得票7回答
Java中是否有SoftHashMap?

我知道在java.util中有一个WeakHashMap,但是它使用WeakReference来引用每个对象,而这些对象只被Map所引用。因此,在下一次垃圾回收期间,被引用的对象将会丢失。所以如果您想缓存随机数据,并且很可能会再次请求该数据,但在其余时间内没有被硬链接,这个方法几乎是无用的。最...

61得票2回答
在dispatch_async函数中使用weak self

我看了很多关于在dispatch_async里使用__weak self的帖子,现在有点困惑。如果我有:self.myQueue = dispatch_queue_create("com.biview.core_data", NULL); dispatch_async(self.myQueu...