黑马程序员技术交流社区

标题: 一个2维数组在堆内存中开辟了几块空间 [打印本页]

作者: zk342577507    时间: 2016-3-6 22:56
标题: 一个2维数组在堆内存中开辟了几块空间
  int[] arr = new[3][2];
在堆内存中开辟了几块空间.

作者: lixianglei    时间: 2016-3-6 23:18
int[] arr = new[3][2];  首先这是一个二维数组中有三个一维数组 ,每一个一维数组中有两个元素    首先在内存中开辟三个空间用来存放 三个一维数组的地址   然后每个一维数组开辟两个空间存放元素  这一共就开辟了九个空间  个人见解 不知道对不对
作者: 玉质彼端    时间: 2016-3-7 01:49
画个图演示吧。
(1)首先,int[] arr这个局部变量会存储在栈内存,其值执行其在堆中开辟的第一维数组的第1个地址
(2)第1维数组在堆内存是连续的3个地址空间,其中每一个空间分别存储堆内存中不同的二维数组的对应地址值
(3)3个二维数组也分别占连续的两个堆内存地址

无标题.png (71.83 KB, 下载次数: 19)

无标题.png

作者: xanx14710    时间: 2016-3-7 14:12
3块空间




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2