【问题标题】:Java main methodJava主要方法
【发布时间】:2018-02-20 06:17:18
【问题描述】:

在重载的 main 方法中,为什么将带有签名 String[] args 的 main 方法视为入口点。

例如

public class Test {
    public static void main(String[] args) {
        System.out.println("why this is being printed");
    }

    public static void main(String arg1) {
        System.out.println("why is this not being printed");
    }

    public static void main(String arg1, String arg2) {
        System.out.println("why is this not being printed"); 
    }
}

【问题讨论】:

  • 因为这是 Java 工作的正确方式。

标签: methods main


【解决方案1】:

main 方法应该只有 1 个参数,类型为 String[],因此单个字符串和 2 个字符串形式不是有效的 main 方法,因此不是选项,唯一接受的形式是:

  • public static void main (String[])
  • public static void main (String...)

第二个选项是第一个选项的语法糖。

这是在 Java 语言规范中设置的:

12.1. Java 虚拟机启动

Java 虚拟机通过调用某个指定类的 main 方法开始执行,并传递给它一个参数,该参数是一个字符串数组...

Link

【讨论】:

    【解决方案2】:

    这是 Java 的工作方式,Java 文档对此进行了描述;

    未指定的签名根本不起作用,因为它们不符合标准。

    java 命令启动一个 Java 应用程序。它通过启动来做到这一点 Java 运行时环境 (JRE),加载指定的类,以及 调用该类的 main() 方法。该方法必须声明为public 和静态的,它不能返回任何值,它必须接受一个字符串 数组作为参数。方法声明的形式如下:

    public static void main(String[] args)

    http://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-20
      相关资源
      最近更新 更多