public class Constructor {
Constructor constructor = new Constructor();
// Constructor constructor ; // 1
// static Constructor constructor = new Constructor();//2
public Constructor() {
System.out.println("constructor");
}
public static void main(String[] args) {
Constructor c = new Constructor();
}
}
上面程序就会发生递归调用。
首先明确,类初始化时实例变量将会在构造函数中初始化
main函数中声明局部变量c ,并对其初始化,这时程序会在堆空间里为其申请空间并完成对内存空间赋值