class A
{
B b;
public A()
{
b = new B(this);
//initialization of class A variables
}
public void meth1()
{
}
}
class B
{
A a;
public B(A a)
{
this.a = a;
}
}
この参照をこのように渡すべきではないことは知っていますが、これを行うとどうなりますか
他のいくつかのクラスは、クラスAコンストラクターを呼び出します。「この」参照が実際にメモリを割り当てたのはいつですか。super()が呼び出される前に、Aのコンストラクターが呼び出されるとすぐに、メモリが割り当てられますか。
クラスBがスレッドであり、BにはAの参照があるため、「この」参照にまだメモリが割り当てられていない場合、Aのコンストラクタが返されない前にBがAのメソッドを呼び出すことができるとします。