日期:2014-05-18  浏览次数:21070 次

请问2个实体类,互为成员时,实例化的时候内存是个什么状况
比如:
public Class A
{
 public B b;
}

public Class B
{
public A a;
}
实例化的时候内存是个什么状况
比如 
A a1=new A();
会不会造成死循环,为什么呢?

------解决方案--------------------
A在实例化的时候会将你的b置为null,所以不会有死循环。
但当你两个对象中在申明字段时都实例化了就死了。
------解决方案--------------------
new A时,A中的b只是声明,并没有创建实例,如果在A的构造函数中创建B,那么就会调用B的构造函数,如果B的构造函数中又创建A,那么就是死循环