Java的内存划分
2019-07-10 本文已影响0人
PetrichorHH
1.栈(Stack):
存放的都是方法中的局部变量。方法的运行一定要在栈中运行。
局部变量:方法的参数,或者是方法大括号{}内部的变量。
一旦超出作用域,立刻从栈内存中消失。
2.堆(Heap):
凡是new出来的,都在堆中。
堆内存里面的东西都有一个地址值:16进制。
堆内存里面的数据都有默认值。规则如下:
如果是整数: 默认为0
如果是浮点数: 默认值为0.0
如果是字符: 默认值为'\u0000'
如果是布尔: 默认值为false
如果是引用类型: 默认值为null
3.方法区(Method Area):
存储.class相关信息,包含方法的信息。
4.本地方法栈(Native Method Stack):
与操作系统相关。
5.寄存器(pc Register):
与CPU相关。