我有2个类,他们都持有对另一个的引用.
class A {
private B b;
public A(B b) {
this.b = b;
}
}
class B {
private A a;
public B() {
a = new A(this);
}
}
Run Code Online (Sandbox Code Playgroud)
如果它泄漏了内存,那么我如何能够实现我想要的而不会泄漏?
Java的GC足够聪明,可以处理循环引用,它从GC根目录开始到对象,以检查它们是否仍然存在.因此,如果您有一个A未从任何地方引用的类型的对象(即:GC根),即使它引用了B,它也有资格进行垃圾收集.
循环链表总是做类似的事情.
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |