java - 为什么它向我显示 java.lang.StackOverflowerror

标签 java stack-overflow

我创建了一个类,一个实例变量在 main 方法内部创建,另一个在外部。

// calling a method from constructor
public class Raw4 {

    public static void main(String[] args) {
        Raw4 r = new Raw4();
    }

    Raw4 r1 = new Raw4();

}

最佳答案

当您创建新的 Raw4 对象时,所有带有初始值设定项的字段都会被初始化。

您的 Raw4 类有一个名为“r1”、类型为 Raw4 的字段,它是通过创建...另一个 Raw4 对象来初始化的。

因此,创建 Raw4 对象的行为涉及创建 Raw4 对象。这是一个永无止境的过程。

关于java - 为什么它向我显示 java.lang.StackOverflowerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58522763/

相关文章:

java - 如何在给定 JSP 中的键的情况下获取 Map 值?

java - Struts2中使用域对象进行数据传输时如何排除字段

c - 估计线程堆栈大小

scalaz.State 深度单子(monad)循环中的堆栈溢出

c# - 无法增加堆栈大小 Visual Studio 2013 C#

java - Entitymanager/持久化文件结构

java - 从 EntityManagerFactory 发出连接 EntityManager

java - Ajax 看不到 Post Controller

string - t和*t的区别

javascript - javascript中第一个函数中的setTimeout()和第二个函数中的闭包是否会出现堆栈溢出错误?