1.内存的划分
1.寄存器
cpu处理
2.本地方法区
和所在系统相关
3.方法区
方法加载进内存,其实就是开辟了一块该方法的方法区
方法区中还可以有静态区,用于存放静态变量(类变量)
4.栈内存
5.堆内存
2.栈和堆
1.栈:
存储的都是局部变量。而且变量所属的作用域一旦结束,就释放该变量。
栈中的变量生命周期都很短,更新速度会很快。
局部代码块:限定局部变量的生命周期。局部代码块一旦执行结束,里面的变量就会被释放。
2.堆
存储的是数组和对象。凡是new建立的,都会存在堆里。
特点:
- 每一个实体都有首地址值。
- 堆内存中的每一个数据都有默认初始化值,根据数据类型的不同而不同,
整数:0,
小数:0.0或0.0f
char:‘\u0000’ \u代码unicode码,即空格
对象:null
3. java的垃圾回收机制能自动回收堆中不再使用的实体内容