我假设 GWT 管理垃圾收集,并且当应用程序中的任何地方不再引用小部件或变量时,能够防止内存接收器的累积(也称为泄漏)。
因此,将引用/变量设置为 null 是不够的,因为该小部件/对象可能会被应用程序中的其他位置引用/链接。特别是在“树”中,我将与树项相关的信息进行哈希处理。
如果有人对上述假设有异议,请说出你的想法。
好吧,如果一组对象相互引用,但总体上没有引用链可以将它们跟踪到任何主动使用的对象/变量,那么情况又如何呢?
一个简单的例子是双向链表,从我自己的双向链表类实例化。或者也是从我自己编写的类中实例化的循环列表。如果该双向链表或循环列表不再被任何 Activity 组件/对象/变量引用怎么办?
GWT gc 知道如何收集和销毁这些列表吗?
如果不是,我应该遵循哪些预防措施或设计模式来避免内存接收器的累积?
最佳答案
这是所有垃圾收集框架都知道如何处理的问题——尽管我相信 GWT 依赖于 Javascript 的 GC,而不是它自己的 GC。
如果您检查 this section on Wikipedia ,您将理解为什么您描述的双向链表结构将被正确地垃圾收集——本质上,未引用的列表将无法从任何根访问。
关于java - 循环分配/链接的 GWT 垃圾收集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727965/