JVM虚拟机内存划分情况

 

堆:任何用new字段分配的Java对象实例和数组,都被分配在堆上。内部会划分出多个线程私有的分配缓冲区(Thread Local Allocation Buffer, TLAB)。可以位于物理上不连续的空间,但是逻辑上要连续。GC释放

程序计数器(PC寄存器):指示Java虚拟机下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。

虚拟机栈:描述的是 Java 方法执行的内存模型。每个方法在执行时都会创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。不靠GC释放

本地方法栈:与虚拟机栈发挥的作用相似,本地方法栈为虚拟机使用的Native方法服务。

方法区:用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据。

 

参考:

https://blog.csdn.net/qq_41701956/article/details/81664921

posted @ 2021-01-26 18:07  zjcfrancis  阅读(59)  评论(0编辑  收藏  举报