一、栈(Stack)
存放的是方法中的局部变量。方法的运行一定要在栈当中。
局部变量:方法的参数,或者方法中{}内的变量。
作用域:一旦超出作用域,立刻从栈内存中消失。
二、堆(Heap)
凡是new出来的东西,都在堆当中。
堆内存里面的东西都有一个地址值,16进制。
堆内存里边的数据都有默认值:整数:0,浮点数:0.0,字符:'\u0000',布尔:false,引用类型:null
三、方法区(Method Area)
存储.class先关信息,包含方法的信息。
四、本地方法栈(Native Method Stack)
与操作系统相关。
五、寄存器(Pc Register)
与CPU相关。
六、内存图
1、单数组内存图
2、 两个数组内存图
3、两个引用指向同一个数组内存图