它不会导致错误.只是因为你初始化一个对象,并不意味着main方法被执行. Java只会最初调用传递给它的类的main方法

> 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();
}
}

这将导致一个StackOverflowError,因为你明确地调用TestClass的main方法,然后再次调用main方法,再一次又一次调用.

当有疑问时,只需测试一下:-)