java的内存划分为5部分
1.栈(Stack) 方法运行在栈中
存放的都是方法中的局部变量
局部变量:方法的参数,或者方法的内部的变量
作用域:一旦超出作用域,就立刻在栈内存中消失
2.堆(Heap)
凡是new出来的东西,都在堆中
堆内存里面的东西都有一个地址: 16进制
1.7以后堆中,含字符串常量池专门通过自动创建字符串对象存放字符串常量的地址
堆内存里面的数据,都有默认值
类型 | 默认值 |
整数 | 0 |
浮点数 | 0.0 |
字符 | \u0000 |
布尔 | false |
引用数据 | null |
3.方法区(Method Area)
储存.class的相关信息,包含方法信息
存在静态区用于存储static变量和方法
4.本地方法栈(Native Method Stack)
与操作系统相关
5.寄存器(pc Register)
与CPU相关