【问题标题】:what is the use of string args[] in main method [duplicate]主要方法中字符串args []的用途是什么[重复]
【发布时间】:2011-03-17 12:28:49
【问题描述】:

可能重复:
What is “String args[]”? in Java

这个方法在java中的目的是什么。如果我们不使用会发生什么? 如果我给出一些数组大小,那么会发生什么

【问题讨论】:

    标签: java


    【解决方案1】:

    args 数组包含传入 Java 应用程序的所有命令行参数。例如,如果您这样调用您的应用程序:

    java foo arg1 arg2 22 3 + 5
    

    那么 args[] 将是以下字符串的数组:

    "arg1", "arg2", "22", "3", "+", "5"
    

    你可以给它任何你想要的名字——它不必被称为args,但你不能指定一个大小。之所以如此,是因为您没有定义参数,而只是指定了它的类型。它的大小是根据传入的命令行参数的数量来确定的。

    【讨论】:

      【解决方案2】:

      main方法中字符串args[]有什么用?

      它将任何命令行参数传递给您的 Java 应用程序。例如,如果您将应用运行为:

      java -cp ... com.example.app1.App1 1 2 3 4
      

      然后 JVM 尝试执行 com.example.app1.App1.main(String[]),其参数等同于由表达式 new String[]{"1", "2", "3", "4"} 创建的参数。

      这个方法在java中的目的是什么。如果我们不使用会发生什么?

      它提供了一个入口点,允许您从命令行运行应用程序。如果您没有提供合适的main 方法,您将能够编译应用程序,但不能运行它。如果您提供的 main 方法没有 String[] 参数,则它不会被识别为入口点。

      如果我给出一些数组大小,那么会发生什么?

      你得到一个 Java 编译错误;例如

      public static void main(String[10] args) { ...
      

      是无效的 Java。数组类型声明没有大小,因为大小不是数组类型的一部分。 Java 数组的大小是一个运行时属性,只有在创建数组实例时才确定。

      【讨论】:

        【解决方案3】:

        args 参数包含在启动程序时传递给 JVM 的命令行参数,类似于 C/C++ main 函数的 argv 参数。您可以将其声明为 String[] 或可变参数 String...

        Java Language Specification 似乎没有定义 args 的语义,所以我认为这取决于 JVM 本身来确定如何填充数组。我可以想象,像 Android 这样的平台可以有其他填充数组的方式。

        【讨论】:

          【解决方案4】:

          从命令行传递参数。程序可以将其用作一组参数,以根据一组已知参数进行操作或产生结果。

          【讨论】:

            【解决方案5】:

            用于传入命令行参数: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/essential/environment/cmdLineArgs.html

            我认为您必须在 main 方法中声明它(但您不必使用它)。我不认为你可以给它一个数组大小。

            【讨论】:

              猜你喜欢
              • 2020-05-11
              • 2023-03-31
              • 1970-01-01
              • 1970-01-01
              • 2010-10-17
              • 2012-04-09
              • 2020-06-25
              相关资源
              最近更新 更多