gpt4 book ai didi

java - 程序的流程是怎样的以及为什么会出现 stackOverFlow 错误

转载 作者:行者123 更新时间:2023-12-02 09:36:12 25 4
gpt4 key购买 nike

为什么这个程序给出这个异常

"Exception in thread "main" java.lang.StackOverflowError at com.Test.<init>(Test.java:5)"

代码:

public class Test {

Test t = new Test();

public static void main(String[] args) {
Test t = new Test();
}
}

最佳答案

发生这种情况是因为您将实例级变量初始化为它自己定义的类的实例,这会导致无限递归,并且 JVM 会抛出 StackOverflowError :

  • 主方法中 Test 的新实例创建 Test,它将 Test 初始化为创建 Test< 的实例级变量Test 初始化为实例级变量等...

要修复此问题,请删除类中第一行代码并使用以下内容:

public class Test {

public static void main(String[] args) { // this static method is called once upon
Test t = new Test(); // the start and creates an instance once
}
}

关于java - 程序的流程是怎样的以及为什么会出现 stackOverFlow 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57493174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com