这是我的代码:
public class Test
{
static
{
main(null);
}
public static void main(String [] args)
{
System.out.println("done");
}
}
我得到以下输出:
done
done
有人可以解释一下原因吗?
最佳答案
原因是main
被调用了两次:
- 明确地,来自static initialization block一旦类加载完毕。
- 程序一启动就隐式进入程序。
如何解决这个问题?要么不要显式调用它,要么重命名它,这样就不会自动调用它。
关于java - 为什么 `main`在这里被调用两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095775/