A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 李志群 于 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

9 个回复

倒序浏览
本帖最后由 朱东方 于 2012-7-12 23:13 编辑

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

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

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

评分

参与人数 1黑马币 +1 收起 理由
李志群 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
别人问你们这个题目的意思是什么?不是要你们讲题。这个题目的意思是,问你baz的值是什么?

评分

参与人数 1黑马币 +1 收起 理由
李志群 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
全海波 发表于 2012-7-12 23:12
别人问你们这个题目的意思是什么?不是要你们讲题。这个题目的意思是,问你baz的值是什么?
...

哥们你太懂我了 那个(String[] args )这个怎么串的啊?
回复 使用道具 举报
答案是G。。角标越界。
回复 使用道具 举报
朱东方 发表于 2012-7-12 23:06
第一题结果是:green  blue
第一个输出的是green  第二个输出的是blue  第三个 角标越界了·

哦了我知道题目的大概意思了:)
回复 使用道具 举报
函数的参数(String [] args(参数的变量名)):函数的参数,参数类型是一个数组,该数组中的元素是字符串,字符串类型的数组。
args这个不是死的,完全可以换成别的标识符。

主函数中String 字符串,我上面已经和楼主说了呵呵 他是一个数组 所以你用键盘输出的(d:\>java Test) Red对应的数组是0角标位置 Green对应1角标位置 Blue对应2角标位置
所以出来个  String baz=args[3]; 就越界出错了。
希望能帮到你。

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
它是由虚拟机调用,JVM会传入一个值给args
回复 使用道具 举报
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属于局部变量,系统不会为其进行初始化,局部变量必须进行显式初始化方可使用。

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
韦念欣 + 1 赞一个!
李志群 + 2 赞一个!

查看全部评分

回复 使用道具 举报
就是问楼主baz的值是什么。建议楼主开个辞典在旁边,方便很多,也能顺道认两个单词
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马