What is “String args[]”? parameter in main method Java
我刚刚开始用Java编写程序。 以下Java代码是什么意思?
1 |
-
什么是
String[] args ? -
你什么时候使用这些
args ?
源代码和/或示例优于抽象解释
在Java
换句话说,如果以
如果你想输出
1 2 3 4 5 6 7 |
这些是Java中的命令行参数。
换句话说,如果你跑
java MyProgram one two
然后
["一二" ]
1 2 3 4 |
这样做的原因是将应用程序配置为以特定方式运行或为其提供所需的一些信息。
如果您是Java新手,我强烈建议您阅读官方Oracle的JavaTM教程。
1 | $ java MyProg -f file.txt |
那么
以下答案基于我的理解和一些测试。
什么是String [] args?
答案 - >
String [] - > As我们知道这是一个简单的String数组。
args - >是一个数组的名称,它可以是任何东西(例如a,ar,参数,参数,参数)没有编译器和执行的问题,我也测试过。
例如。
1)public static void main(String []参数)
2)public static void main(String []参数)
你什么时候使用这些args?
Ans->
主要功能由开发人员非常智能地设计。实际思维非常深刻。
这基本上是在考虑基于命令行参数的C&C ++的基础上开发的,但现在没有人更多地使用它。
东西1-用户可以从命令行输入任何类型的数据,可以是Number或String&必须由编译器接受它我们应该使用哪种数据类型?看东西2
Thing 2- String是支持Java中所有原始数据类型的数据类型,如int,long,float,double,byte,shot,char。您可以使用任何原始数据类型轻松解析它。
例如,以下程序已编译和执行,我也进行了测试。
如果输入是 - > 1 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // one class needs to have a main() method public class HelloWorld { // arguments are passed using the text field below this editor public static void main(String[] parameter) { System.out.println(parameter[0] + parameter[1]); // Output is 11 //Comment out below code in case of String System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2 System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0 System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2 System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0 } } |
在此方法签名中,当调用方法时,数组
1 2 3 4 5 6 7 8 9 |
我会分手
1 |
部分。
"public"表示可以从任何地方调用main()。
"static"表示main()不属于特定对象
"void"表示main()不返回任何值
"main"是函数的名称。 main()很特别,因为它是程序的开始。
"String []"表示String数组。
"args"是String []的名称(在main()的主体内)。"args"并不特别;你可以把它命名为其他任何东西,程序也会这样。
-
String[] args 是字符串的集合,由空格分隔,可以在终端上输入程序。更多的时候,初学者不会使用这个变量,但总是存在以防万一。
即使OP只谈论
如果你看一下JDK源代码(jdk-src j2se src share bin java.c):
1 2 3 4 5 6 7 8 9 10 11 12 | /* Get the application's main method */ mainID = (*env)->GetStaticMethodID(env, mainClass,"main", "([Ljava/lang/String;)V"); ... { /* Make sure the main method is public */ ... mods = (*env)->CallIntMethod(env, obj, mid); if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */ message ="Main method not public."; messageDest = JNI_TRUE; goto leave; ... |
您可以看到java中的起始方法必须命名为
代码还告诉我们
Offtopic:自从OP提出这个问题已经7年了,我的猜测是OP现在可以回答他自己的问题了。
完成代码后,您将把它变成扩展名为.java的文件,可以通过双击来运行,也可以通过控制台(Mac上的终端,Windows上的cmd.exe)运行,让用户可以许多事情,许多东西。有一件事是他们可以看到控制台消息(System.out.print或System.out.println),如果他们双击它们就看不到它们。他们可以做的另一件事是指定参数,所以通常你会使用这条线
1 | java -jar MyCode.jar |
导航到程序的文件夹后
1 | cd C:My/Code/Location |
在窗户或
1 | cd My/Code/Location |
在Mac上(注意mac不那么笨重)来运行代码,但是要指定你要使用的参数
1 | java -jar MyCode.jar parameter1 parameter2 |
存储在args数组中的这些参数可以在程序中使用,您希望允许用户控制特殊参数,例如要使用的文件或程序可以有多少内存。如果您想知道如何使用数组,您可能会在此网站上找到一个主题或只是google它。请注意,可以使用任意数量的参数。
我认为上面的答案很好地涵盖了
换句话说,
用简单的外行人的语言解释。
当我们将JVM引导到类名时,main方法需要我们提供一些参数。这意味着,假设您的文件名是Try.java,现在要在命令提示符中执行此操作,您可以编写"javac Try.java"进行编译,然后执行"java Try"。现在假设您不是简单地写"java Try"而是编写"java Try 1"。在这里你传递了一个参数"1"。即使您未在代码中使用它,也将使用main方法。
如果要检查主方法是否实际采用了参数"1"。只需在main方法中输入以下内容:
1 2 3 |
在
public static void main(String args [])
args是一个控制台行参数数组,其数据类型为String。
在这个数组中,您可以通过在命令行调用它们来存储各种字符串参数,如下所示:
java myProgram Shaan Royal
然后Shaan和Royal将存储在数组中
ARG [0] ="陕";
ARG [1] ="皇家";
如果不在命令行中调用它们,也可以在程序内手动执行此操作。
当从控制台执行java类时,main方法就是所谓的。为了实现这一点,必须定义这个主要方法
1 |
此字符串数组称为args的事实是标准约定,但并非严格要求。您将在调用程序的命令行中填充此数组
1 | java MyClass a b c |
这些通常用于定义程序的选项,例如要写入或读取的文件。
样式
除了之前的所有评论。
1 |
可写成
1 |
要么
1 |