Java主要方法

时间:2017-09-11 22:41:26

标签: methods main

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

e.g。

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"); 
    }
}

2 个答案:

答案 0 :(得分:2)

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

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

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

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

  

<强> 12.1。 Java虚拟机启动

     

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

Link

答案 1 :(得分:0)

这是Java的工作方式,Java文档描述了这一点;

指定以外的签名将无法正常工作,因为它们不符合标准。

  

java命令启动Java应用程序。它通过开始这样做   Java运行时环境(JRE),加载指定的类,和   调用该类的main()方法。该方法必须公开   和static,它不能返回任何值,它必须接受一个String   数组作为参数。方法声明具有以下形式:

     

public static void main(String [] args)

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