我刚开始用Java写程序。下面的Java代码是什么意思?
public static void main(String[] args)
什么是字符串[]参数? 什么时候使用这些参数?
源代码和/或示例优先于抽象的解释。
我刚开始用Java写程序。下面的Java代码是什么意思?
public static void main(String[] args)
什么是字符串[]参数? 什么时候使用这些参数?
源代码和/或示例优先于抽象的解释。
当前回答
dataType[] arrayRefVar是首选样式。dataType arrayRefVar[]样式来自C/ c++语言,并在Java中被采用,以适应C/ c++程序员。
其他回答
String[] args表示传递给“main”函数的字符序列数组(字符串)。这发生在程序执行时。
例如,当你通过命令行执行Java程序时:
这只是一个测试
因此,数组将存储:["This", "is", "just", "a", "test"]
我认为上面的答案很好地涵盖了String args[]只是一个字符串参数的数组,当你运行它时,你可以传递给你的应用程序。为了完成,我可能会补充说,将传递给主方法的方法参数定义为String类型的变量参数(varargs)也是有效的:
public static void mainargs)
换句话说,main方法必须接受String数组(String args[])或varargs (String…Args)作为方法参数。args这个名字也没有什么神奇之处。你也可以写参数,甚至freddiefujiwara,如下所示:
public static void main (String[]参数)
public static void main (String[] freddiefujiwara)
在Java中,args以String对象数组的形式包含提供的命令行参数。
换句话说,如果你在你的终端上运行你的程序:
C:/ java MyProgram one two
然后args将包含["one", "two"]。
如果你想输出参数的内容,你可以像这样循环它们…
public class ArgumentExample {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
程序将在终端中打印:
C:/ java MyProgram one two
one
two
C:/
String[] args参数是一个字符串数组,当你在操作系统中通过命令行运行你的应用程序时,它作为参数传递。
假设您已经编译并打包了一个myApp.jar Java应用程序。当然,你可以在操作系统中双击应用程序来运行应用程序,但你也可以使用命令行方式运行它,比如(在Linux中):
user@computer:~$ java -jar myApp.jar
当你调用你的应用程序传递一些参数时,比如:
user@computer:~$ java -jar myApp.jar update notify
java -jar命令将你的Strings更新和通知传递给你的公共静态void main()方法。
然后你可以这样做:
System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'
即使OP只是谈论String[]参数,我想给出一个完整的公共静态void main(String[] args)的例子。
Public:是一个访问修饰符,它定义了谁可以访问此方法。Public意味着这个方法可以被任何类访问(如果其他类能够访问这个类的话)。
Static:是一个关键字,它标识类相关的东西。这意味着给定的方法或变量与实例无关,而是与类相关。可以在不创建Class实例的情况下访问它。
Void:用于定义方法的返回类型。它定义了方法可以返回的内容。Void表示方法不会返回任何值。
main:方法的名称。JVM仅将此方法名作为具有特定签名的应用程序的起点进行搜索。
String[] args:是主方法的参数。
如果你查看JDK源代码(JDK -src\j2se\src\share\bin\java.c):
/* 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中的启动方法必须命名为main,并且必须具有特定的签名public static void main(String[] args)
代码还告诉我们,公共静态void main(String[] args)是不固定的,如果你改变(jdk-src\j2se\src\share\bin\java.c)中的代码到另一个签名,它会工作,但改变这将给你其他可能的问题,因为java规范
跑题:OP问这个问题已经7年了,我猜OP现在可以回答他自己的问题了。