Java学习_数组1_二维数组内存图解

2/10/2017来源:ASP.NET技巧人气:1140

假设有一个二维数组 int [][]a=new int[3][2];//有三个一维数组,并且没有被赋值 1.当我们编译运行后,main方法首先进栈,然后分配一个二维数组变量 2.在堆内创建一个实体,其有一个地址假设为0x0011,然后分配连续的三块空间,里面有3个一维数组,一维数组是引用数据类型的,所以有默认初始化值null,每个一维数组中还有两个元素,这两个元素并不是存在这个一维数组中的,这三个一维数组,都有自己独立的空间地址,其里面存储的是其对应的两个元素的地址 3.紧接着创建二维数组中存储数据的第一个一维数组,其会分成两块空间,并且会把其地址赋值给存储地址的第一个一维数组。然后创建存储数据的第二个一维数组,并且把该数组值赋值给存储地址的第二个数组。最后创建存储数据的第三个一维数组,并且把该数组值赋值给存储地址的第三个数组。 System.out.PRintln(a);//打印的是二维数组的地址0x0011 System.out.println(a[0]);//打印的是一维数组的地址0x0022 System.out.println(a[0][0]);//打印的是一维数组的值0