二维数组元素的默认初始化值(以动态初始化为例说明)
约定:对于二维数组来说,分为外层元素(比如:arr[0])和内层元素(比如:arr[0][1])
-
情况1:比如:int arr = new int[4][3];
- 外层元素默认存储的是:数组的类型和地址值
- 内层元素,跟一维数组的元素的默认值是一致的。
- 整型的数组:byte\short\int\long 型数组的元素的默认值为: 0
-
浮点型的数组:float\double 型数组的元素的默认值为:0.0
-
布尔型的数组:boolean 型数组的元素的默认值为:false
-
字符型的数组:char 型数组的元素的默认值为:0或\u0000
-
引用数据类型的数组:数组的元素的默认值为:null
-
情况2:比如:int arr =new int[4][ ];
-
外层元素的默认值为:null
-
内层元素:本身不存在。如果输出的话,报错,异常为:java.lang.NullPointerException
测试结果:
int[] arr = new int[10];
sysout(arr);//[I@堆空间中数组结构的首地址值
sysout(arr[0]);//0
int[][] arr1 = new int[10][5];
sysout(arr1);//[[I@堆空间中数组结构的首地址值
sysout(arr1[0]);//[I@堆空间中数组结构的首地址值
sysout(arr1[0][1]);//0
sysout(arr1[0][5]);//ArrayIndexOutOfBoundsException
int[][] arr2 = new int[10][];
sysout(arr2);//[[I@堆空间中数组结构的首地址值
sysout(arr2[0]);//null
sysout(arr2[0][1]);//NullPointerException
sysout(arr2[0][5]);//NullPointerException