我在刚学习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
啥东西要也没有,原来这是一个虚拟数组,它相当于是一个容器,需要用户向里面传入参数,同时实现与用户的一个交互;
当我们传参进去后,我们就可以用我们熟悉的遍历方式来输出了;
以上是我理解的,欢迎大家共同交流!