2
私は2つのクラスを持っていて、どちらも他のクラスへの参照を保持しています。このJavaコードはメモリをリークしますか?
class A {
private B b;
public A(B b) {
this.b = b;
}
}
class B {
private A a;
public B() {
a = new A(this);
}
}
それはメモリリークが発生した場合、どのように私が漏れることなく、私が欲しいものを達成することができますか?
_leak memory_を定義してください。なぜこのコードがそれをしていると思いますか、なぜそうは思わないのですか? –
Aは参照を保持していますが、Aは参照を保持しているためAをクリーンにできないため、AとBはガベージコレクションされません。 – Ukubu
一般的に言えば、Javaのメモリリークを心配する必要はありません。独自のガベージコレクションを行い、オブジェクトが参照されなくなったときにそれらを保持し、オブジェクトを安全に削除できるようにします。それはjavaを持つ特権の一つです。 –