为啥主要方法应该是静态的[重复]

Posted

技术标签:

【中文标题】为啥主要方法应该是静态的[重复]【英文标题】:Why the main method should be in static [duplicate]为什么主要方法应该是静态的[重复] 【发布时间】:2014-11-02 11:59:19 【问题描述】:

以下代码给出了错误,因为我没有将静态关键字放在主方法中。请解释为什么 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:Main 方法在 Test 类中不是静态的,请将 main 方法定义为: public static void main(String[] args)

【问题讨论】:

因为没有类实例可供JVM调用main方法。这是语言的要求,为什么还要它? 因为在实例级别放置“入口”函数是没有意义的。此外,它会在加载类时出现。 JVM 不需要 Test 的实例来调用它。 【参考方案1】:

由于main方法是staticJava virtual Machine可以在不创建任何包含main方法的类的instance的情况下调用它。

如果 main 方法未声明为静态,则 JVM 必须创建 main Class 的实例,并且由于构造函数可以重载并且可以有参数,JVM 没有任何确定且一致的方法可以在其中找到 main 方法Java。

另请参阅this 以获得详细且解释清楚的答案。

【讨论】:

以上是关于为啥主要方法应该是静态的[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥main方法在java中是静态的[重复]

为啥 main 方法需要是静态的? [复制]

我不知道为啥会发生错误[重复]

接口私有方法使用

为啥我应该使用 Any 方法而不是 Count? [复制]

为啥接口方法不能是“静态的”和“最终的”?