cod*_*der 3 java stack-overflow
运行此代码时,它显示Stackoverflow错误.我做错了什么,为什么代码编译?
public class Foo {
int a = 5;
Foo f = new Foo();
void go() {
System.out.println(f.a);
}
public static void main(String[] args) {
Foo f2 = new Foo();
f2.go();
}
}
Run Code Online (Sandbox Code Playgroud)
Foo f=new Foo();
Run Code Online (Sandbox Code Playgroud)
您可以Foo使用变量本身创建一个实例Foo,并在构造函数中对其进行初始化.
这会导致构造函数invokations的无限递归,直到你的堆栈空间不足.
| 归档时间: |
|
| 查看次数: |
2331 次 |
| 最近记录: |