java中的二维数组内存是否连续 |
您所在的位置:网站首页 › 二维数组图解怎么做 › java中的二维数组内存是否连续 |
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 |