2010-07-18 33 views

回答

0

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

2

args数组包含传递给Java应用程序的所有命令行参数。例如,如果你打电话给你的应用程序是这样的:

java foo arg1 arg2 22 3 + 5 

然后ARGS []将是以下字符串数组:

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

你可以给它任何你想要的名称 - 它不不必称为args,但不能指定大小。这是因为你没有定义参数,你只是指定它的类型。它的大小是基于在通过命令行参数的数量来确定。

+2

的副本不应该读取'java foo ...'的例子吗?你不会有java运行一个源文件。 – 2010-07-18 07:06:39

+0

是的,感谢您的编辑 – bluesmoon 2010-07-18 22:53:09

0

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

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

1

main方法中string 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数组的大小是只在创建数组实例时才确定的运行时属性。

相关问题