定义一个二维数组:

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 2020-10-27 21:08  又在化学楼迷路了  阅读(402)  评论(0)    收藏  举报