为什么此代码不能正常执行。它抛出java.lang.StackOverflowError。我想知道班级的行为。
public class A {
A a = new A();
public static void main(String[] args) {
A a = new A();
System.out.println("i'm done!");
}}
答案 0 :(得分:3)
您创建a
的实例变量A
并在每次调用构造函数时初始化它。所以它继续像一个无限循环
答案 1 :(得分:0)
您面临的问题是您在第二行使用默认/空白构造函数重新声明该类,从而导致无限循环,从而导致StackOverflowError。
删除以匹配:
public class A {
public static void main(String[] args) {
A a = new A();
System.out.println("i'm done!");
}}