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是一个相当于无限循环的实例化