当在命令行输入:java myprog good morning 运行以下代码,输出结果是(      )。
public class myprog{
    public static void main(String argv[])
    {
System.out.println(argv[2]);
    }
}
A. myprog 
B. good  
C. morning  
D. Exception raised: "java.lang.ArrayIndexOutOfBoundsException: 2"  此题的答案为什么不是C而是D呢?

解决方案 »

  1.   

    argv数组的长度是2,即argv[0]="good",argv[1]="morning", argv[2]就数组越界了。
      

  2.   

    答案必须是D
    java myprog good morningargs.length == 2 ;
    args[0] = "good";
    args[1] = "morning";java 的数组下标是从0开始 和c++一样 
    而你使用 args[2] 当然要报数据越界啦
      

  3.   

    数组下标是0开始,这里数组的长度是2。所以只有
    args[0],args[1]
      

  4.   

    argv数组的实际长度是2,下标从0开始计,即argv[0]="good",argv[1]="morning", 没有argv[2],所以提示数组越界。
      

  5.   

    java myprog good morning
    首先 java myprog 这两个词 是为了运行你的java程序。这个知道吧
    然后空格, 后面可以参数,就是args这个数组里的参数。
    args.length == 2 ;
    args[0] = "good";
    args[1] = "morning";所以不能使用args[2]