问题1:
下面代码的输出结果是什么
int[] arr = new int[20];
System.out.println(arr[1]);
正确答案:0,为什么不是null?
解释: int[] arr = new int[20]的时候已经开辟了arr的储存空间,int型的默认值是0,所以arr[1]的值就是0额,不知道我说的清楚么,我就是这么理解的
问题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都是错的,二维数组可以这样声明吗?
解释: 数组声明的方式有以下几种 int[][] arr = new int[2][4]; int arr1[][] = new int[2][4]; int[][] arr = {{1,2,3,4},{1,2,3,4}};
int[] arr[] = new int[2][4]; int[][] arr = new int[2][];
问题3:
下面代码的输出结果是什么?
String s1 = new String("hello"); //在堆内存中创建一个值为hello的对象s1
s1 = s1.replace('e','x'); //因为字符串是不可变的,所以在堆内存中创建了一个新的值hxllo,让s1指向它
String s3 = "hxllr"; //先在栈内存的字符串储存池中查找是否有hxllr的字符串,如果有就指向它,如果没有就在栈中创建一个
String s4 = "hxllr"; //在字符串储存池中找到hxllr的字符串,s4指向这个地址,所以s3和s4指向的是同一个地址
String s2 = s1.replace('o','r'); //在堆内存中重新创建一个值hxllr,让s2指向它
System.out.println(s2); //s2的值为"hxllr"
System.out.println(s2 == s3); //虽然s2和s3的值是相同的,但是两者指向的对象不同,所以结果为false
System.out.println(s3 == s4); //s3和s4指向同一对象,所以结果是true
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类型的值传递是什么传递?
String是一个类,所以是引用传递
|