指定main方法所引用的参数类型的目的是什么?

时间:2015-08-17 22:51:32

标签: java oop types arguments

public static void main (string[] args)是一个主要方法,必须给出一个字符串数组作为参数。

但是,当我运行程序时,main方法会自动运行,而不需要使用参数显式调用它。

因此,我有以下问题:

  • 主要方法的参数类型是否重要?
  • 是否存在使用参数显式调用main方法的情况?如果是这样,这种情况的例子是什么?

3 个答案:

答案 0 :(得分:3)

  

主方法的参数类型是否重要?

是。 JVM使用public static main(String[] args)作为常规Java应用程序的执行入口点。换句话说,这是JVM将执行从其自己的内部加载和初始化例程切换到您自己的字节码的地方。除非您在容器(例如GlassFish)或框架(例如JavaFX)中执行应用程序,否则您需要为您的代码提供此入口点。按惯例,它是public static main(String...)

  

是否存在明确调用main的情况   带参数的方法?如果是这样,这种情况的一个例子是什么?

main(...)的论据主要来自两个地方:

  • 命令行。从shell或Windows cmd.exe中的命令行启动Java应用程序时,可以在要执行的JAR文件的名称后键入一些其他数据。这些附加数据将被处理为一系列字符串,并传递给您的main()方法。

  • 配置设置。大多数IDE允许您为项目指定命令行参数。您可以在此设置中将参数传递到入口点(在构建和运行项目时),就像在命令行上一样。

如Dave所述,您自己的代码本身不会调用main(...)方法。它真的只是作为切入点。

答案 1 :(得分:2)

  1. 当然; JVM只会自动调用main(String[])。它专门用于从命令行中获取字符串args。
  2. 它只是另一种方法:虽然它几乎总是用作切入点,但没有任何技术原因可以像其他任何静态方法一样使用它。我不会,因为它不典型且不具沟通性。

答案 2 :(得分:2)

  

在Java编程语言中,每个应用程序都必须包含一个签名为:

的main方法      

public static void main(String [] args)

     

修饰符public和static可以按任意顺序编写(public static或static public),但约定是使用public static,如上所示。您可以根据需要为参数命名,但大多数程序员选择" args"或" argv"。

     

主要方法类似于C和C ++中的主要功能;它是您的应用程序的入口点,随后将调用您的程序所需的所有其他方法。

     

main方法接受一个参数:String类型的元素数组。

     

public static void main(String [] args)

     

此数组是运行时系统将信息传递给应用程序的机制。

您可以阅读更多here,主要的Java文档非常实用,here

同样对于你的第二个问题,是的,你可以做到,但我不建议。