任何人都可以在下面的代码中帮助理解运行时的 StackOverFlowError。
我无法理解工作流程。
面试题之一:)

public class Interview {

    Interview i1 = new Interview();
    Interview(){
        System.out.println("Hello");

    }

    public static void main(String[] args){

        Interview i = new Interview();

    }

}

最佳答案

您的 Interview i1 = new Interview(); 表示每个 Interview 都有属于它自己的 Interview 对象,因此一旦您在 new Interview() 中调用 main ,系统就会开始尝试为那个创建一个新的 Interview ,并为那个创建一个新的 Interview ......

它甚至从未进入(显式)构造函数,因为系统首先在一条永无止境的新 Interview 链上启动。您几乎肯定应该从 i1 类中删除 Interview 字段。

关于java - 为什么我要面对这个以及什么是工作流程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18808788/

10-10 14:32