重拾Java-内存

48 阅读1分钟

内存

特点

1.一个线程一个栈区

2.栈中的元素私有,不能被其他栈访问

3.优点:存储速度很快,比堆要快,仅次于CPU的寄存器

4.缺点:数据大小和生存周期确定,缺乏灵活性

存储形式

先进后出

通过栈指针创建和释放空间,因此每次移动需要明确移动的大小和移动的位置,导致缺乏灵活性

存储内容

基本数据类型的数据以及引用数据类型的指针

存储内容

类的对象(因为类对象的大小不能够确定)

过程是:new 关键字是指告诉jvm,需要去中开辟一块新的内存空间

栈中存放的指针指向堆中的对象

释放的时候先释放指针,然后当堆中的对象没有任何的引用的时候,GC(垃圾回收机制)就会将堆中的内存空间释放掉

方法区

存储内容

1.类信息

2.静态的变量

3.常量

4.成员方法

注意

包含特殊区域,即常量池,存储的是使用static修饰的成员

PC寄存器

Java程序中,每个线程启动的时候,都会创建一个PC寄存器

主要用来保存:当前正在执行的JVM指令的地址

本地方法栈

保存本地native方法的地址

\