【JAVA基础回顾】java主程序入口里的(String [] args)到底是什么?

时间:2021-09-27 21:27:10

我在刚学习Java时,老师是要求记住java程序的程序入口的固定写法:

public static void main(String[] args){
   执行代码;
}

当时一直困惑String[] args是什么东西?

现在我大概学习了下java的基础语法,回过头来看下当时遗留的这个问题。

String[] args

学习了java基础语法后,你可以很好的理解出,这代表一个字符串数组类型,args为字符串数组名

我跑了以下代码:

public static void main(String[] args) {
		args[0]="a";
		args[1]="b";
		for(String i:args){
		System.out.print(i);

	}

程序抛出异常如下:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0

ArrayIndexOutOfBoundsException

数组小标越界

但是很奇怪的是,JAVA数组在定义的时候是必须要进行初始化数组长度,而我们的有参方法是这样的完全不符合java语法规范

 main(String[] args)

接下来我跑了以下代码:

public static void main(String[] args) {
	int a = args.length;
	
System.out.print(a);
}

是的,既然报错了,我就想看下这个数组的长度是多少的,以下为结果:

0

啥东西要也没有,原来这是一个虚拟数组,它相当于是一个容器,需要用户向里面传入参数,同时实现与用户的一个交互;

当我们传参进去后,我们就可以用我们熟悉的遍历方式来输出了;

以上是我理解的,欢迎大家共同交流!