我确信,这个问题代码必须在这个网站上提出.但我无法搜索,这是基本的问题,但由于我的基本概念不佳,我没有得到它 -
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,为什么?
你的课程基本上相当于:
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,它再次调用自己创建另一个实例,然后填充堆栈直到它溢出.
| 归档时间: |
|
| 查看次数: |
486 次 |
| 最近记录: |