java.lang.StackOverflowError的?

Tar*_*ney 0 java android

我确信,这个问题代码必须在这个网站上提出.但我无法搜索,这是基本的问题,但由于我的基本概念不佳,我没有得到它 -

public class A {

A obj = new A();

public static void main(String arg[])
{
    A ob = new A();
}
} 
Run Code Online (Sandbox Code Playgroud)

它给java.lang.StackOverflowError,为什么?

小智 5

每次创建对象时,A它都会创建另一个对象A来创建另一个对象A......


Roh*_*ain 5

你的课程基本上相当于:

public class A {

    A obj;
    public A() {
        obj = new A();
    }  

    public static void main(String arg[]) {
        A ob = new A();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在你看到你是如何得到这个错误的?每次你创建一个实例时A,都会调用构造函数get,它再次调用自己创建另一个实例,然后填充堆栈直到它溢出.