java中的二维数组内存是否连续

您所在的位置:网站首页 二维数组图解怎么做 java中的二维数组内存是否连续

java中的二维数组内存是否连续

2023-04-19 03:09| 来源: 网络整理| 查看: 265

Java二维数组的存储空间实际上并不是连续的,而是这样的:

Java中内存图:栈内存、堆内存、方法区。

栈内存:保存的是执行方法、运行方法(例如主方法)。

堆内存:保存的是具体的对象、数组等。

代码中带 new的就会在堆内存中开辟空间。

方法区:加载某一个类的.class字节码文件。

在方法区加载编译后的Demo05.class字节码文件

将main方法加载到栈内存中,执行int [ ][ ] arr = ,此时虽然采用静态初始化方法无new,依旧在堆内存中开辟一块空间,创建一个数组(3个连续的空间),数组的索引为0-2。针对此时的索引进行输出时得到的会是一个一维数组的地址值(即二维数组中“行”存放“列”的地址值)。此时创建3个一维数组,每个一维数组对应的索引为0-1。在这时的一维数组分别保存1-2,3-4,5-6。三个一维数组分别有三个内存地址值,此时二维数组存放的就是这3个内存地址值。

在二维数组通过3个地址值就可以找到3块空间,此时二维数组才算创建完毕,也会有一个对应的地址值(图上的0x0011),并把这个地址值赋值给arr。

此时如果输出arr[0]就会出现第一个一维数组的地址值,输出arr即输出二维数组的地址值。

结合Java一维数组的内存图解



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3