package geek;
public class Gfg {
// constructor
Gfg() {
System.out.println("Geeksforgeeks");
}
Gfg a = new Gfg();
public static void main(String args[]) {
Gfg b;
b = new Gfg();
}
}
此程序在运行时给出 线程" main"中的例外情况java.lang.StackOverflowError的
为什么会出现此错误?
答案 0 :(得分:2)
这会导致StackOverflow,因为您在类本身内创建了类的实例。这导致无限递归,试图创建无限的Gfg嵌套实例。
删除Gfg a = new Gfg();
,因为它没有用处。
答案 1 :(得分:0)
原因是以下行导致无限递归:
Gfg a = new Gfg();
只要Gfg
被实例化,就会执行此操作。由于此行将实例化一个新实例,因此将再次调用该行。