[java学习笔记]java语言基础概述之内存的划分&堆和栈

时间:2022-07-24 20:25:46

1.内存的划分

1.寄存器

cpu处理

2.本地方法区

和所在系统相关

3.方法区

方法加载进内存,其实就是开辟了一块该方法的方法区

方法区中还可以有静态区,用于存放静态变量(类变量)

4.栈内存

5.堆内存

2.栈和堆

1.栈:

存储的都是局部变量。而且变量所属的作用域一旦结束,就释放该变量。

栈中的变量生命周期都很短,更新速度会很快。

局部代码块:限定局部变量的生命周期。局部代码块一旦执行结束,里面的变量就会被释放。

2.堆

存储的是数组和对象。凡是new建立的,都会存在堆里。

特点:

  1. 每一个实体都有首地址值。
  2. 堆内存中的每一个数据都有默认初始化值,根据数据类型的不同而不同,

整数:0,

小数:0.0或0.0f

char:‘\u0000’ \u代码unicode码,即空格

对象:null

3.  java的垃圾回收机制能自动回收堆中不再使用的实体内容

[java学习笔记]java语言基础概述之内存的划分&堆和栈