1,我们都知道,堆区存储的全部是对象和数组。而栈区存储的是基础数据类型的对象和对象的引用。,
2,我们又知道,二维数组的对象存在堆区,如创建二维数组 int[][] arr = new int[3][] ; 然后我们对这个
数组中的3个一维数组进行初始化,如arr[0] = new int[3];arr[1] = new int[1];arr[2] = new int[2]; 这样
便在堆区新开辟了三个一位数组的空间,而arr[0]、arr[1]和arr[3]是这三个一位数组的引用。
我的问题是这三个引用(即arr[0]、arr[1]和arr[3])是存储在堆区中的,而不是存储在栈区中的。
这样岂不违背了第1句话?(上述文字也许是我存在误解,请大牛们解释一下)
|
-
二维数组存储.jpg
(65.87 KB, 下载次数: 16)
上个图,这是毕老师讲数组视频的一个关于二维数组存储空间的截图。
|