当前位置: 主页 > JAVA语言

java 栈内存 开辟数组-Java中内存图:保存的是执行方法、运行方法

发布时间:2023-06-09 22:20   浏览次数:次   作者:佚名

与一维数组相同

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

java 栈内存 开辟数组_java 栈内存 数组_java获取栈内存

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

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

java 栈内存 数组_java获取栈内存_java 栈内存 开辟数组

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

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

java 栈内存 开辟数组_java获取栈内存_java 栈内存 数组

在这里插入图片描述

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

java获取栈内存_java 栈内存 开辟数组_java 栈内存 数组

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

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

java获取栈内存_java 栈内存 开辟数组_java 栈内存 数组

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

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