以下是给予分配的程序。请求您提供以下输出的帮助,以及#34;预期输出"。它在线程" main"中提供错误"异常。 java.lang.StackOverflowError的"
class A
{
{
new B();
}
static class B
{
{
new A().new C();
}
}
class C
{
{
System.out.println("Expected output");
}
}
}
public class MainClass
{
public static void main(String[] args)
{
new A();
}
}
答案 0 :(得分:4)
您拨打new A()
,拨打new B()
,再次拨打new A()
,再次拨打new B()
,然后一直打开,直到您无法接听再创建新对象(因此StackOverflowError)。
你应该在某个时候停止创建A()或B()
答案 1 :(得分:0)
class A
{
{
new B();
}
static class B
{
static {
new A().new C();
}
}
class C
{
{
System.out.println("Expected output");
}
}
}
public class MainClass
{
public static void main(String[] args)
{
new A();
}
}
Anonymous块在任何构造函数之前执行 静态块在加载静态类之前执行