让我们考虑以下两个循环引用的例子:
直接的循环引用
以下由Jon Skeet(@Jon Skeet)回答的Stack Overflow问题说明,只要从已知的根到循环中不存在“GC walk”,直接的示例也将被垃圾回收。
我的问题是:
在性能或其他方面,使用或不使用示例2中表示的习惯用法——使用WeakReference是否有任何原因?
直接的循环引用
class A {
B b;
}
class B {
A a;
}
class A {
B b;
}
class B {
WeakReference<A> aRef;
}
以下由Jon Skeet(@Jon Skeet)回答的Stack Overflow问题说明,只要从已知的根到循环中不存在“GC walk”,直接的示例也将被垃圾回收。
我的问题是:
在性能或其他方面,使用或不使用示例2中表示的习惯用法——使用WeakReference是否有任何原因?