java 栈内存 开辟数组-Java中内存图:保存的是执行方法、运行方法
发布时间:2023-06-09 22:20 浏览次数:次 作者:佚名
与一维数组相同
Java中内存图:栈内存、堆内存、方法区。
栈内存:保存的是执行方法、运行方法(例如主方法)。
堆内存:保存的是具体的对象、数组等。
代码中带 new的就会在堆内存中开辟空间。
方法区:加载某一个类的.class字节码文件。
在方法区加载编译后的Demo05.class字节码文件
将main方法加载到栈内存中,执行int [ ][ ] arr =java 栈内存 开辟数组,此时虽然采用静态初始化方法无new,依旧在堆内存中开辟一块空间java 栈内存 开辟数组,创建一个数组(3个连续的空间),数组的索引为0-2。针对此时的索引进行输出时得到的会是一个一维数组的地址值(即二维数组中“行”存放“列”的地址值)。此时创建3个一维数组,每个一维数组对应的索引为0-1。在这时的一维数组分别保存1-2,3-4,5-6。三个一维数组分别有三个内存地址值,此时二维数组存放的就是这3个内存地址值。
在二维数组通过3个地址值就可以找到3块空间,此时二维数组才算创建完毕,也会有一个对应的地址值(图上的0x0011),并把这个地址值赋值给arr。
此时如果输出arr[0]就会出现第一个一维数组的地址值,输出arr即输出二维数组的地址值。
结合Java一维数组的内存图解