规定:二维数组分为外层数组的元素,内层数组的元素
对于初始化方式一:比如 int[][] arr = new int[4[3]
外层元素的初始值为:地址值
内训元素的初始值为:与一维数组初始化情况一样
对于初始化方式二:比如 int[][] arr2 = new int[4][]
外层元素的初始值为:null
内层元素的初始值为:不能调用否则报错
对于二维数组的理解,我们可以看成时一维数组arr1又作为另一个一维数组arr2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组
代码测试以及二维数组的内存解析:
-
public class Demo{
-
public static void main(String[] args){
-
-
int[][] arr = new int[2][3];
-
-
(arr[0]);//输出结果为一个地址值
-
(arr[0][0]);//输出结果为0,int类型数据的默认初始化值为0
-
-
int[][] arr2 = new int[3][];
-
-
(arr2[0]); //输出结果为null,引用数据类型的默认初始化值为null
-
(arr2[0][0]) //报错
-
-
}
-
-
}