我是java编程的新手。今天这个例子是我老师用非静态方法教的。任何机构都从jvm架构的角度告诉我详细的答案
class Example {
int x = 10;
int y = 20;
Example e1 = new Example();
public static void main(String[] args){
System.out.println("main method start");
Example e2 = new Example();
System.out.println("main method end");
}
}
答案 0 :(得分:4)
类示例{
int x=10;
int y=20;
Example e1=new Example(); // this is the reason
当您在main()方法中调用新示例时,发生了什么
Example e1=new Example();
正在执行中。
在示例e1 = new example();你再次创建一个Example()的新对象,它将再次调用new Example()(对新的Example()的递归调用导致StackOverflowError)。