二维数组在内存中的存储结构

内存空间分为三块区域,从左至右分别为:栈内存,堆内存,存储区(存常量值)

基本数据类型变量空间开在栈内存中,引用数据类型变量除了在栈内存中新建一个变量空间外,还会在堆内存中new一个空间,用来存具体的值(在栈内存中只存储其地址)

如下图所示二维数组 int[][] array;实际上是定义了一个数组类型的数组。即一个一维数组中存储的不是int或其他基本类型 的值,而是同样的引用类型——数组。array是这个二维数组的变量名。

变量所需空间是开在栈内存中,二位数组array变量空间是在栈内存中(红1标注)的,里面存的是一个一维数组(红二标注)在堆内存中的首地址;(红2)每个一维数组空间中都存了一个小一维数组(红3标注)在堆内存中的首地址。

也就是说,实际上变量 int[][] array和数组int[] 内,其实存的都是地址。只有数组红3中存的才是int数值。

当使用赋值语句array[0][0]=10;array[0][1]=20;时,表示从常量池取来两个常量10和20,分别放进(红3)第一个小数组的两个空间里,替换掉默认的值0.

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值