它不会导致任何错误。仅仅因为初始化对象,并不意味着 main 方法被执行。Java最初只会调用传递给它的类的主方法,例如
>java TestClass
但是,执行如下操作:
public class TestClass
{
public static void main (String[] args)
{
TestClass foo = new TestClass();
foo.main(args);
}
}
或
public class TestClass
{
public TestClass()
{
//This gets executed when you create an instance of TestClass
main(null);
}
public static void main (String[] args)
{
TestClass foo = new TestClass();
}
}
这将导致 一个 ,因为您正在显式调用 TestClass 的主方法,然后它将一次又一次地调用 main 方法,一次又一次地调用 main 方法,并且....StackOverflowError
当有疑问时,只需测试一下:-)