为什么main方法应该是静态的

时间:2014-09-09 06:49:47

标签: java

以下代码给出错误,因为我没有将静态关键字放到main方法中。请解释为什么main方法在没有static关键字的情况下无效。

public class Test {
public void main(String args[]) {
    try {
        int a = new Integer(10);
        System.out.println(a);
    } catch (Exception e) {
        System.out.println(e);
    }
}

}

Error:主要方法在Test类中不是静态的,请将main方法定义为:    public static void main(String [] args)

1 个答案:

答案 0 :(得分:2)

由于主要方法static Java virtual Machine可以调用它而不创建包含main方法的任何instance类。

如果main方法没有声明为静态,而JVM必须创建main Class的实例,并且因为构造函数可以重载并且可以有参数,所以{{1}不会有任何确定的一致方式在Java中找到main方法。

还可以参考this获取详细且解释清楚的答案。