JAVA基础知识复习(六)-内存结构简单说明
本文最后更新于:December 3, 2021 pm
JAVA基础知识复习(六)。简单说明记录在内存中数据的存储位置。
栈、堆、方法区
栈(stack):存放局部变量,即方法中的变量。包括main函数中的变量。
堆(heap):存放通过 New 出来的结构,如:对象、数组。
方法区:又叫静态区,跟堆一样,被所有的线程共享。类的加载信息、静态域、常量池。方法区包含所有的class和static变量。
方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。
如图所示:
一维数组的内存解析
代码:
1 |
|
首先,我们先看第一句话。
int[] arr 是在栈中的,new int[]{1,2,3} 是在堆中的。并且初始化他们为默认值。它们之间是通过地址来连接的。
String[] att 同样也是在栈中,new String[4]是在堆中。并且初始化他们为默认值。他们之间也是通过地址连接的。att[1] = “刘德华”;att[2] = “张学友”;就是赋值。
arr1 = new String[3] 是又重新在堆中开辟了一个新空间。
具体表示如图所示,被红线划掉的表示的是开始时的默认值:
二维数组的内存解析
同一维数组一样的道理,如图,其中被红线划掉的表示的是开始的默认值:
1 |
|
本文作者: 墨水记忆
本文链接: https://tothefor.com/DragonOne/2581791513.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!