【发布时间】:2016-08-23 13:08:28
【问题描述】:
在这篇文章中:Xamarin - Use Weak References to Prevent Immortal Objects 它表示如果两个对象相互强引用,它们将成为不朽的,这意味着 GC 无法收集它们,即使应用程序不再使用这些对象。
但是,在这 2 个 SO 讨论中:
Garbage collector and circular reference
Circular References Cause Memory Leak?
似乎循环引用可以被 GC 处理,只要对象不再被应用程序使用。
我有什么误解吗? Java 的 GC 在 Android 上的行为是否不同?我真的很困惑。 任何 cmets 都适用。谢谢!
【问题讨论】:
-
如果您想了解 Android 垃圾收集器,为什么要链接到 MS .Net 上的两个讨论?你问的是哪个? .net 还是 android?对于 Android,How to Leak a Context。
-
那篇文章对我来说显然是不正确的,.NET GC 总是作为跟踪 GC 实现的,据我所知,它不会泄漏循环。
-
@Asik 与 Java 相同。这篇文章似乎假设 GC 基于引用计数,而 Java 或 .NET 并非如此。
-
@ElliottFrisch,之所以把两个dot Net讨论链接起来是因为那篇文章来自微软子公司Xamarin,它使我们能够在Android和IOS上使用dot Net。
标签: java c# android xamarin garbage-collection