一维数组
array1.jpgint[] arr1 = new int[3];
先把 arr1 压进栈,然后在堆空间中开辟一个空间,并把值初始化为0(arr1为引用变量,但是内部数据是int类型,默认值为 0,具体请参照局部变量与成员变量),最后把 开辟的堆空间地址 赋值给arr1
int[] arr2 = arr1;
把 arr1 中的 地址 赋值给 arr2,此时 arr2 和 arr1 指向同一块空间。
arr2[0] = 20;
此时,arr1[0] 值为 20。
二维数组
array2.jpgint[][] array = new int[3][];
这条语句会先把 array 压栈,然后在堆中开辟一个空间,初始值为 null(array为引用变量,第一维同样是引用类型,具体请参照局部变量与成员变量),最后把开辟的堆空间地址赋值给 array。
array[0][] = new int[1]
这条语句会在堆空间中开辟一个 只有一个 int 类型大小的空间,并初始化为 0 ,然后把自己的地址赋值给array[0][]。
array[1][] = new int[2];
array[2][] = new int[3];
这两条语句和上一条意义一样,就不再做解释
网友评论