【基础】二维数组元素的默认初始化值(以动态初始化为例说明)

二维数组元素的默认初始化值(以动态初始化为例说明)

约定:对于二维数组来说,分为外层元素(比如:arr[0])和内层元素(比如:arr[0][1])

  • 情况1:比如:int arr = new int[4][3];

  1. 外层元素默认存储的是:数组的类型和地址值
  2. 内层元素,跟一维数组的元素的默认值是一致的。
  3. 整型的数组:byte\short\int\long 型数组的元素的默认值为: 0
  4. 浮点型的数组:float\double 型数组的元素的默认值为:0.0

  5. 布尔型的数组:boolean 型数组的元素的默认值为:false

  6. 字符型的数组:char 型数组的元素的默认值为:0或\u0000

  7. 引用数据类型的数组:数组的元素的默认值为:null

  • 情况2:比如:int arr =new int[4][ ];

  1. 外层元素的默认值为:null

  2. 内层元素:本身不存在。如果输出的话,报错,异常为: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
发布了37 篇原创文章 · 获赞 5 · 访问量 750

猜你喜欢

转载自blog.csdn.net/qq_43771096/article/details/104432354