二維數組元素的默認初始化值(以動態初始化爲例說明)
約定:對於二維數組來說,分爲外層元素(比如: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