java.lang.StackOverflowError?

标签 java android

我确信,这个问题代码必须在这个网站上提出。但我无法搜索,这是基本问题,但由于我的基本概念很差,所以我没有得到它-

public class A {

A obj = new A();

public static void main(String arg[])
{
    A ob = new A();
}
} 

它给出了java.lang.StackOverflowError,为什么?

最佳答案

您的类(class)本质上相当于:

public class A {

    A obj;
    public A() {
        obj = new A();
    }  

    public static void main(String arg[]) {
        A ob = new A();
    }
}

现在你知道你是如何得到这个错误的了吗?每次创建 A 的实例时,构造函数 get 都会被调用,它会再次调用自身来创建另一个实例,这会继续填充堆栈直到溢出。

关于java.lang.StackOverflowError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19088633/

相关文章:

java - 如何让 Spring 为类上的同一个 validator 显示不同的基于验证包的消息?

Java桌面jar到android

java - 反序列化 Google Web Kit 响应 (Java) 和 Java Servlet

android - 如何制作不是图像的Android xml自定义ui元素

java - 二进制 XML 文件行 #15 : Failed to resolve attribute at index 1: TypedValue{t=0x2/d=0x7f030003 a=-1}

android - 无法从 Kotlin Android 中解析的 Json 数据为 TextView 赋值

java - 除了ant之外,java最好的构建工具是什么?

java - 自组织模糊神经网络 (SOFNN) 在 Java、C、Python 等中的实现

android - PreferenceActivity 作为主要 Activity

java - 如何将 IETF BCP 47 语言代码转换为显示字符串?