class Test
{
Test t = new Test();
public static void main(String args[])
{
Test t = new Test();
System.out.println(t);
}
}
答案 0 :(得分:11)
因为Test
构造函数分配了一个新的Test
对象,该对象分配了一个新的Test
对象,该对象分配了一个新的Test
对象......等等。
答案 1 :(得分:0)
当main()方法执行时,它将创建一个新的Test
对象。一旦创建了新的Test
对象,就意味着它将初始化所有实例变量。在再次初始化实例变量时,它尝试创建一个新的Test
对象。在堆内存中,它将继续创建新的Test
对象。因此,您将获得java.lang.StackOverflowError
例外。要解决此异常,请将第一个Test
对象设为static
。