黑马程序员技术交流社区

标题: 这个题是什么意思啊?都英文啊····· [打印本页]

作者: 李志群    时间: 2012-7-12 23:02
标题: 这个题是什么意思啊?都英文啊·····
本帖最后由 李志群 于 2012-7-12 23:58 编辑

class Test
{
        public static void main(String[] args)
        {
                String foo=args[1];
                String bar=args[2];
                String baz=args[3];
        }
}



d:\>java Test Red Green Blue





what is the value of baz?
  A. baz has value of ""
  B. baz has value of null
  C. baz has value of "Red"
  D. baz has value of "Blue"
  E. baz has value of "Green"
  F. the code does not compile
  G. the program throw an exception
作者: 朱东方    时间: 2012-7-12 23:06
本帖最后由 朱东方 于 2012-7-12 23:13 编辑

第一题结果是:green  blue
第一个输出的是green  第二个输出的是blue  第三个 角标越界了·

第二题:G(角标越界的意思)。看不懂就google翻译一下,大概意思能懂。

A到E说的都是,运行的结果。
F说的是,这个代码不能编译。
G说的是越界了。

作者: 全海波    时间: 2012-7-12 23:12
别人问你们这个题目的意思是什么?不是要你们讲题。这个题目的意思是,问你baz的值是什么?

作者: 李志群    时间: 2012-7-12 23:15
全海波 发表于 2012-7-12 23:12
别人问你们这个题目的意思是什么?不是要你们讲题。这个题目的意思是,问你baz的值是什么?
...

哥们你太懂我了 那个(String[] args )这个怎么串的啊?
作者: 范泰洋    时间: 2012-7-12 23:16
答案是G。。角标越界。
作者: 李志群    时间: 2012-7-12 23:16
朱东方 发表于 2012-7-12 23:06
第一题结果是:green  blue
第一个输出的是green  第二个输出的是blue  第三个 角标越界了·

哦了我知道题目的大概意思了:)
作者: 朱东方    时间: 2012-7-12 23:27
函数的参数(String [] args(参数的变量名)):函数的参数,参数类型是一个数组,该数组中的元素是字符串,字符串类型的数组。
args这个不是死的,完全可以换成别的标识符。

主函数中String 字符串,我上面已经和楼主说了呵呵 他是一个数组 所以你用键盘输出的(d:\>java Test) Red对应的数组是0角标位置 Green对应1角标位置 Blue对应2角标位置
所以出来个  String baz=args[3]; 就越界出错了。
希望能帮到你。
作者: 全海波    时间: 2012-7-12 23:31
它是由虚拟机调用,JVM会传入一个值给args
作者: 黑马王冬冬    时间: 2012-7-12 23:41
1.main主函数从命令行中都取字符串数组类型的参数,
此例子中Red Green Blue作为参数传入,
因为数组下标从0开始,Red,Green和Blue在数组中的下标分别为0,1,2,
当访问数组元素args[3]时,编译会发生数组越界错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
下边问到baz的值,故选g;
2.我本来以为答案是b来着,但测试后发现会引发异常.原因在于数组args属于局部变量,系统不会为其进行初始化,局部变量必须进行显式初始化方可使用。
作者: 李思静    时间: 2012-7-13 06:39
就是问楼主baz的值是什么。建议楼主开个辞典在旁边,方便很多,也能顺道认两个单词




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2