内存
栈
特点
1.一个线程一个栈区
2.栈中的元素私有,不能被其他栈访问
3.优点:存储速度很快,比堆要快,仅次于CPU的寄存器
4.缺点:数据大小和生存周期确定,缺乏灵活性
存储形式
先进后出
通过栈指针创建和释放空间,因此每次移动需要明确移动的大小和移动的位置,导致缺乏灵活性
存储内容
基本数据类型的数据以及引用数据类型的指针
堆
存储内容
类的对象(因为类对象的大小不能够确定)
过程是:new 关键字是指告诉jvm,需要去堆中开辟一块新的内存空间
栈中存放的指针指向堆中的对象
释放的时候先释放指针,然后当堆中的对象没有任何的引用的时候,GC(垃圾回收机制)就会将堆中的内存空间释放掉
方法区
存储内容
1.类信息
2.静态的变量
3.常量
4.成员方法
注意
包含特殊区域,即常量池,存储的是使用static修饰的成员
PC寄存器
Java程序中,每个线程启动的时候,都会创建一个PC寄存器
主要用来保存:当前正在执行的JVM指令的地址
本地方法栈
保存本地native方法的地址
\