class A{main(){
new A();
}
A a = new A();}
报错  Exception in thread "main" java.lang.StackOverflowErrormain在构造A的时候会对 a初始化,初始化的时候也就应该什么也没做吧。为什么报错呢????

解决方案 »

  1.   

    class A{ main(){ 
    new A(); 

    A a = new A();    //你这个代码是做什么????}同意楼上..太牛B了..利用main构造A???不是有构造函数这个概念么??
      

  2.   

    StackOverflowError  当应用程序递归太深而发生堆栈溢出时,抛出该错误。 
    构造方法他也是方法,楼主在构造方法里又调用了自己,这明显是无限递归的死循环嘛。无限递归的结果,必然是jvm无法再找到可用于存放类A实例对象的空间,因此报这个错。
      

  3.   

    不关构造方法的事,楼主就没写构造方法。
    楼主为class A定义了一个属性A,并给它赋值。
    运行的时候其实和构造方法中new自己的意思一样,导致了递归调用。