定义一个二维数组:
float[][] arr1 = new float[4][3];
System.out.println(arr[0]);
System.out.println(arr[0][0]);
这时候打印出来的是什么?
答案:
System.out.println(arr[0]); ——> 地址值
System.out.println(arr[0][0]); ——> 0.0
因为这时候初始化二维数组指定了行和列!所以当输出arr[0] 的时候,就是指示的是一个地址值
而第二个打印的“0.0”是因为初始化没赋值,默认为0
再次定义一个二维数组:
String[][] arr2 = new String[4][2];
System.out.println(arr2[1]);
System.out.println(arr2[1][1]);
这时候打印的是什么?
答案:
System.out.println(arr2[1]); ——> 地址值
System.out.println(arr2[1][1]); ——> null
还定义一个二维数组:
double[][] arr3 = new double[4][];
System.out.println(arr3[1]);
System.out.println(arr3[1][0]);
这时候打印出来的是什么?
答案:
System.out.println(arr3[1]); ——>null
System.out.println(arr3[1][0]); ——>空指针异常
因为这时候这个二维数组值=只是定义了行,并没有定义列
所有当打印“arr3[1]”的时候,因为列没有初始化,所以就指示为null
而因为这是null,所以当打印arr[1][0]——这种具体的数据时,就会出现空指针异常!
posted on
浙公网安备 33010602011771号