JVM运行时数据区域

小伙伴们注意了!

小编在这里给大家送上关注福利:

转发本文,关注+私信小编“资料”即可领取小编精心准备的资料一份!

以下是我阅读JVM规范的注释。

JVM运行时数据区域

 1. 每个线程的数据区域(不共享)

每个线程的数据区域包括程序计数器寄存器、JVM堆栈和本机方法堆栈。
它们都是在创建新线程时创建的。

程序计数器寄存器用于控制每个线程的每次执行。
JVM堆栈包含如下图所示的框架。
本机方法堆栈用于支持本机方法,即,非java语言方法。

2. 所有线程共享的数据区域

所有线程共享堆和方法区域。

堆是我们最常处理的区域。
它存储JVM启动时创建的数组和对象。
垃圾收集在这个领域起作用。

方法区域存储运行时常量池、字段和方法数据,以及方法和构造函数代码。

运行时常量池是类文件中constant_pool表的每个类或每个接口的运行时表示。
它包含几种常量,从编译时已知的数值常量到必须在运行时解析的方法和字段引用。

JVM运行时数据区域

堆栈包含帧,当调用方法时,帧被推送到堆栈中。
帧包含局部变量数组、操作数堆栈、对常量池的引用。

最后,想学习Java的小伙伴们!

转发!

转发后关注+私信回复:“资料”就可以拿到一份我为大家准备的Java学习资料!

对Java感兴趣的小伙伴也可以加 小编V❤: suxuejava