【问题标题】:public static void main(String[] args) - why is it actually static? [duplicate]public static void main(String[] args) - 为什么它实际上是静态的? [复制]
【发布时间】:2012-08-27 12:30:29
【问题描述】:

可能重复:
Why is the Java main method static?

main 方法是静态的原因是什么?为什么不只是public void main(String[] args)?我想我理解静态的含义,但我认为没有理由在这里。谢谢。

【问题讨论】:

    标签: java static main


    【解决方案1】:

    我们将java中的main方法声明为:public static void main(String args[])

    static : main 是类的入口点。在java中,一切都写在一个类中。现在当你在命令提示符下运行java时,loader会加载类,jvm会搜索main方法进入类。因此将 main() 设置为静态,将使 jvm 直接访问它而不创建实例。

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

    【讨论】:

      【解决方案2】:

      请记住,java 中的一切都是一个类,并且要让 JVM 直接访问 main 方法而不创建包含在其中的对象,它必须是静态的。

      static : main 是类的入口点。在java中,所有东西都写在一个类中。现在,当您在命令提示符下运行 java filename 时,loader 将加载该类,jvm 将搜索 main 方法以进入该类。所以将 main() 设为静态,会让 jvm 直接通过 classname.main() 访问它

      Reference here

      这也是这个问题的好资源,located here

      【讨论】:

      • 由于 main 方法是静态的,JVM 可以在不创建任何包含 main 方法的类实例的情况下调用它。如果 main 方法没有声明为静态,那么 JVM 必须创建 main 类的实例,并且由于构造函数可以重载并且可以有参数,那么 JVM 就没有任何确定的方法可以在 Java 中找到 main 方法。
      • 答案中主要指出了这一点。这是 3 岁。
      【解决方案3】:

      根据我有限的 Java 知识,main() 是静态的,因为当启动 Java 应用程序时,它不会创建任何类实例。需要有一个可以在不创建实例的情况下调用的函数,这正是 static 关键字的作用。

      【讨论】:

        猜你喜欢
        • 2016-05-22
        • 1970-01-01
        • 2019-11-23
        • 1970-01-01
        • 2015-05-30
        • 2012-08-10
        • 2011-12-10
        • 1970-01-01
        相关资源
        最近更新 更多