- 有的小伙伴看到后不理解,为什么是 String[] args,这个 args 是干嘛的?
String[] args 可以看出来它是一个数组。在命令行中比如运行 Test.class 文件,你可以这样写:
java Test runoob
相当于给数组传入了一个 runoob 字符串。也可以打印出来,可以作为简单的输入。
例如:
public class Test {
public static void main(String[] args) {
System.out.println(args[0]);
}
}
运行以上实例,输出结果如下:
$ javac Test.java
$ java Test runoob
runoob
此处注意,main 是一个程序的入口,一个 java 程序运行必须而且有且仅有一个 main 方法。
args[0] 是你传入的第一个参数,args[1]是传入的第二个参数,以此类推。
- String[] args 还有一种等价的写法: String... args
前者为数组形式, 后者为可变参数形式。
前者用得较多, 但是看到后者也应认识。
- Java 程序利用 main 函数中 args 参数实现参数的传递(传递空格处理)
public class Test { public static void main(String []args) { System.out.println(args[0]); System.out.println(args[1]); System.out.println(args[2]); } }
编译结果: $ javac Test.java $ java Test aaa bbb ccc aaa bbb ccc
注意:三个参数之间用空格隔开!
如果要输出空格怎么办?
只需要在包含空格的参数上,使用双引号 "" 即可。
实例运行:
$ java Test aaa "b bb" ccc aaa b bb ccc
public static void main(String[] args) 是什么意思?
这是 Java 程序的入口地址,Java 虚拟机运行程序的时候首先找的就是 main 方法。跟 C 语言里面的 main() 函数的作用是一样的。只有有 main() 方法的 Java 程序才能够被 Java 虚拟机运行,可理解为规定的格式。
对于里面的参数及修饰符:
- public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样 Java 虚拟机就可以找到 main() 方法,从而来运行 javac 程序。
- static: 表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候 main() 方法也随着加载到内存中去。
- void:main():方法是不需要返回值的。
- main:约定俗成,规定的。
- String[] args:从控制台接收参数。