黑马程序员技术交流社区

标题: 做了个自测题,有好多地方不懂啊啊啊啊啊~求大神指教。 [打印本页]

作者: Poul    时间: 2016-3-23 11:12
标题: 做了个自测题,有好多地方不懂啊啊啊啊啊~求大神指教。
问题1:
        下面代码的输出结果是什么
             int[] arr = new int[20];
             System.out.println(arr[1]);
正确答案:0,为什么不是null?

问题2:
           下面哪个语句正确地声明一个整型的二维数组
                    A. int arr1[][] = new int[][];
                    B.int arr2[10][10] = new int[][];
                    C.int []products[] = new int[30][];
                    D.int names[][] = new int[][10];
答案:C,我知道ABC都是错的,二维数组可以这样声明吗?

问题3:
           下面代码的输出结果是什么?
               String s1 = new String("hello");
               s1 = s1.replace('e','x');
               String s3 = "hxllr";
               String s4 = "hxllr";
               String s2 = s1.replace('o','r');
               System.out.println(s2);
               System.out.println(s2 == s3);
               System.out.println(s3 == s4);
      A.hxllr       B.hxllr       C.hxllr        D.以上全不对
         false         true           true
         true          true           false
答案:A,这题似懂非懂,地址?引用?

问题4:
         下面哪些赋值语句是正确的?(多选)
               A.int test = 012;
               B.float f = -412;
               C.int other = (int) true;
               D.double d = 0x12345678;
答案:A、B、D,通一套题,前面有一个单选,C却是对的?答案错了?

问题5:
          String类型的值传递是什么传递?

谢谢各位亲朋好友了(づ ̄ 3 ̄)づ
作者: 骓逝    时间: 2016-3-23 22:00
问题1:建议你看一下数组的两种初始化的方方式, 这种 方式是静态初始化,为数分配固定的空间大小,会对里面的数值进行默认初始化 int类型的默认是0   
作者: 骓逝    时间: 2016-3-23 22:02
问题2:
           下面哪个语句正确地声明一个整型的二维数组
                    A. int arr1[][] = new int[][];
                    B.int arr2[10][10] = new int[][];
                    C.int []products[] = new int[30][];
                    D.int names[][] = new int[][10];

二维数组初始化的问题:
int[][] arr = new int[]10[];  前面两个[][不能填数字,后面两个第一个一定要填,因为这是静态初始化,后面一个可以不填,也可以填
作者: 骓逝    时间: 2016-3-23 22:16
问题3:
           下面代码的输出结果是什么?
               String s1 = new String("hello");
               s1 = s1.replace('e','x');
               String s3 = "hxllr";
               String s4 = "hxllr";
               String s2 = s1.replace('o','r');
               System.out.println(s2);
               System.out.println(s2 == s3);
               System.out.println(s3 == s4);
      A.hxllr       B.hxllr       C.hxllr        D.以上全不对
         false         true           true
         true          true           false
第一个hxllr没问题吧

第二个因为凡是有关String操作的方法返回的都是新的new出来的字符串,具体的看源码,反正你也看不懂,我也看不懂,记到就行了,String类有一个常量池,跟new出来的不一样,如果没new,直接Sting s = "hello"这样赋值的话s直接指向该常量池对应的hello的地址,如果是通过String s = new String("hello"),这种方式指向hello的话就是s指向new 出来的这个地址,new这里面再指向常量池地址,所以是两个指向的地址不一样,false



作者: 妄想年少轻狂    时间: 2016-3-23 22:23
第一题因为会有默认初始化,int型默认值0
作者: 北极1989    时间: 2016-3-23 23:35
建议仔细看下视频教程,尤其是传智播客刘意的那个基础视频,这几个题都有讲过
作者: unexpectedman    时间: 2016-3-23 23:38
我是来看题的
作者: huangkai521    时间: 2016-3-23 23:40
int other = (int) true;是错误的,boolean类型的值是无法强转的




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