一java程序疑问

来源:百度知道 编辑:UC知道 时间:2024/09/25 05:32:53
public class lesson1
{
public static void main(String[] args)
{
for(int i=0;i<args.length;i++)//没有被初始化怎么就可以计算出数组的长度?
System.out.println(args[i]);

}
}
编译通过,执行java lesson1 first second输出first second。
我的疑问是定义的字符串数组args没有被初始化,就编译通过了,怎么还能计算数组的长度呢?

把main方法换成一个普通的方法理解一下。
public void test(String[] args){
//这样很正常吧!args是一个传入String数组的参数
for(int i=0; i<args.length; i++){
System.out.println(args[i]);
}
}
只不过main方法有点特殊,它是程序运行的入口,所以它的参数传入的方法和普通方法有点不一样。

你那个数组不是在命令行参数中吗 first second就是为args赋值了

告诉你什么叫args
如:在命令行下,java lesson1 arg1,arg2,arg3
这三个就是args[]数组的成员啦.
一般没人这样在运行时才给参数的哦.

实际上args数组是有值的,因为你在命令窗口中输入的参数(就是java lesson后的参数,当然你要以空格隔开)会传给agrs数组,所以你在用输出语句输出时就可以输出你自己输入的参数了。

这是由于args【】是字符串数组,在你main()函数中已经定义了,系统默认自动分配空间了。所以能输出