什么是“string参数”? 主要方法Java中的参数
我刚开始用Java编写程序。 以下Java代码是什么意思?
public static void main(String[] args)
-
什么是
String[] args
? -
你什么时候使用这些
args
?
源代码和/或示例优于抽象的解释
在Java中, args
将提供的命令行参数作为String
对象的数组来包含。
换句话说,如果你运行你的程序作为java MyProgram one two
那么args
将包含["one", "two"]
。
如果你想输出args
的内容,你可以像这样循环他们…
public class ArgumentExample { public static void main(String[] args) { for(int i = 0; i < args.length; i++) { System.out.println(args[i]); } } }
这些是在Java中的命令行参数。
换句话说,如果你运行
java MyProgram一二
然后args
包含:
[ “一二” ]
public static void main(String [] args) { String one = args[0]; //=="one" String two = args[1]; //=="two" }
这样做的原因是configuration你的应用程序运行一个特定的方式或提供它需要的一些信息。
如果您不熟悉Java,则强烈build议阅读Oracle的Java TM教程 。
args
包含调用时传递给Java程序的命令行参数。 例如,如果我像这样调用程序:
$ java MyProg -f file.txt
然后args
将是一个包含string"-f"
和"file.txt"
的数组。
String [] args
也是如何在Java中声明一个string数组。
在这个方法签名中,当调用方法时,数组args
将被填充值(如其他示例所示)。 既然你在学习,那么值得理解,这个args
数组就像你自己在一个方法中创build一个一样,就像这样:
public void foo() { String [] args = new String[2]; args[0] = "hello"; args[1] = "every"; System.out.println("Output: " + args[0] + args[1]); // etc... the usage of 'args' here and in the main method is identical }
下面的答案是基于我的理解和一些testing。
什么是String []参数?
Ans->
String [] – >因为我们知道这是一个简单的String数组。
args – >是一个数组的名称,它可以是任何东西(例如,a,ar,argument,param,参数)没有问题与编译器&执行&我也testing。
例如
1)public static void main(String [] argument)
2)public static void main(String [] parameter)
你什么时候使用这些参数?
Ans->
主要function是由开发人员非常智能地devise的。 实际的思维非常深刻。 这基本上是基于命令行参数考虑C&C ++而开发的,但现在没有人使用它。
事情1-用户可以从命令行input任何types的数据可以是数字或string&必要的接受它由编译器我们应该使用的数据types? 看到的东西2
事物2-string是支持Java中的所有基本数据types(如int,long,float,double,byte,shot,char)的数据types。 你可以很容易地parsing它在任何原始数据types。
例如下面的程序被编译和执行,我也testing过。
如果input是 – > 1 1
// 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 } }
当从控制台执行一个java类时,main方法就是所谓的。 为了做到这一点,这个主要方法的定义必须是
public static void main(String [])
这个string数组被称为args的事实是一个标准的约定,但并不是严格要求的。 你可以在你调用你的程序的时候在命令行填充这个数组
java MyClass abc
这些常用于定义程序的选项,例如要写入或读取的文件。
当你完成你的代码时,你将把它变成一个扩展名为.java的文件,它可以通过双击运行,也可以在控制台(mac上的terminal,Windows上的cmd.exe)很多东西。 有一件事是他们可以看到控制台消息(System.out.print或System.out.println),他们不能看到他们双击。 他们可以做的另一件事是指定参数,所以通常你会使用该行
java -jar MyCode.jar
导航到程序的文件夹后
cd C:My/Code/Location
在窗口或
cd My/Code/Location
在Mac上(注意mac不那么笨重)运行代码,但要指定您将使用的参数
java -jar MyCode.jar parameter1 parameter2
这些参数存储在args数组中,您可以在程序中使用这些参数,您希望允许用户控制特定的参数,例如要使用的文件或程序可以具有多less内存。 如果你想知道如何使用一个数组,你可能会在这个网站上find一个主题,或者只是谷歌。 请注意,可以使用任何数量的参数。
我认为上面的答案已经很好的涵盖了String args[]
只是一个string参数的数组,当你运行它时,你可以传递给你的应用程序。 为了完成,我可以补充说,将传递给main
方法的方法参数定义为Stringtypes的variables参数(可变参数)也是有效的:
public static void main (String... args)
换句话说, main
方法必须接受一个String数组( String args[]
)或者varargs( String... args
)作为方法参数。 而且名字args
也没有魔法。 你可能还会写下如下所示的arguments
,甚至是freddiefujiwara:e.gs .:
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
public static void main(String args []) args是数据types为String的控制台行参数的数组。 在这个数组中,可以通过在命令行中调用它们来存储各种string参数,如下所示: java myProgram Shaan Royal Shaan and Royal将作为arg [0] =“Shaan”存储在数组中。 ARG [1] = “皇家”; 您也可以在程序内部手动执行此操作,而不在命令行调用它们。
简单的外行人的语言解释。
主要方法期望我们提供一些参数,当我们把我们的JVM的类名称。 这意味着,假设你的文件名是Try.java,现在要在命令提示符下执行这个命令,编写“javac Try.java”进行编译,然后执行“java Try”。 现在假设不是简单地写“java try”,而是写“java try 1”。 在这里你已经传递了一个参数“1”。 即使你没有在你的代码中使用它,这也会被你的主要方法所采用。
如果你想检查你的main方法是否实际上采用了参数“1”。 简单地说,在你的主要方法中键入以下内容:
for(int i = 0; i < args.length; i++) { System.out.println("Argument is: "+args[i]); }
我会分手
public static void main(String args[])
在部分。
“public”意味着main()可以从任何地方调用。
“static”意味着main()不属于特定的对象
“void”表示main()不返回任何值
“main”是一个函数的名字。 main()是特殊的,因为它是程序的开始。
“String []”表示String的数组。
“args”是String [](在main()的主体内)的名称。 “args”并不特别; 你可以把它命名为其他任何东西,程序也是一样的。
-
String[] args
是一个由空格分隔的string的集合,可以input到terminal的程序中。 更多的时候,初学者不会使用这个variables,但它总是在那里以防万一。
样式dataType[] arrayRefVar
是首选。 样式dataType arrayRefVar[]
来自C / C ++语言,并被Java采纳以适应C / C ++程序员。
即使是OP只是谈论String[] args
,我想给一个完整的public static void main(String[] args)
例子。
Public
:是一个访问修饰符 ,它定义谁可以访问这个方法。 公共意味着这个方法可以被任何类访问(如果其他类能够访问这个类)。
Static
:是一个关键字,标识与类有关的东西。 这意味着给定的方法或variables不是与实例相关的,而是与类相关的。 可以在不创build类的实例的情况下访问它。
Void
:用于定义方法的返回types。 它定义了该方法可以返回的内容。 Void意味着方法不会返回任何值。
main
:是Method的名字。 此方法名称由JVMsearch,仅作为具有特定签名的应用程序的起点。
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)
代码还告诉我们, public static void main(String[] args)
是不固定的,如果你把(jdk-src \ j2se \ src \ share \ bin \ java.c)中的代码改成另一个签名,工作,但改变这将给你其他可能的问题,因为Java 规格
Offtopic: OP问了这个问题已经7年了,我猜OP现在可以回答他自己的问题了。