有谁能解释一下垃圾收集的孤岛的概念吗?
发布于 2009-04-27 09:43:34
对象A引用对象B对象B引用对象A,对象A和对象B都不被任何其他对象引用。那是一个孤岛。
基本上,隔离岛是一组相互引用但不被应用程序中的任何活动对象引用的对象。严格地说,即使一个未引用的对象也是一个孤岛。
评论:编辑:
class A {
B myB;
}
class B {
A myA;
}
/* later */
A a = new A();
B b = new B();
a.b = b;
b.a = a;发布于 2009-04-27 09:36:46
这是这个术语的好解释。节选:
这就是所谓的“孤岛”。“隔离岛”描述一个或多个对象没有从应用程序的活动部分引用它们。
发布于 2009-04-27 11:46:08
要记住的是,只有在直接或间接地从GC根对象(线程、当前局部变量、静态变量等)引用对象时,才会收集对象。如果两个(或更多)对象相互引用,但不是从根引用,那么它们就有资格进行垃圾收集。
https://stackoverflow.com/questions/792831
复制相似问题