任何人都可以在下面的代码中帮助理解运行时的 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/