在Java中创建对象时出现异常

use*_*513 -4 java

为什么下面的代码抛出异常(java.lang.StackOverflowError)?

public class Test {
    Test f = new Test();


    public static void main(String[] args) {
        Test f = new Test();
        System.out.println("Hi");
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Sot*_*lis 6

每个Test对象都会创建一个Test对象,该对象会产生Test令人作呕的对象.

基本上,f具有初始化表达式的实例字段会导致无限递归循环,该循环将在递归调用构造函数时弹出堆栈.