class A{
int i=0;
A(){
System.out.println("make a A");
}
A a=new A();
}
class B{
int i=0;
B(){
System.out.println("make a B");
}
static B a=new B();
}
class A创建实例时会发生栈溢出,原因是循环定义,而为什么class B实例化时,不会报错static 让B实现了单例,也就是说在虚拟机中实际上只是实例化两次。
而A是一个相当于无限循环的实例化