JVM运行时数据区域

2021年09月15日 阅读数:3
这篇文章主要向大家介绍JVM运行时数据区域,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

摘要

JVM为程序运行期间定义了不少不一样的数据存储区域、它们各司其职、有的伴随JVM的从启动到中止、有的是随机着线程的启动到中止。java

区域

程序寄存器(PC寄存器)

在任意一个时刻、一个线程只能执行一个方法(当前方法),若是当前方法是非native那么pc寄存器存储的是当前方法字节码地址。不然存在的是undefined算法

Java虚拟机栈(Java栈)

每个java线程都有本身的栈,当线程启动时,栈就建立好,用于存储栈帧(frame),当线程结束,那么这个对应的栈也会销毁。线程

Java堆

Java虚拟机启动的时候建立有一个块内存区域,存储线程共享的数据,随着虚拟机的销毁自动销毁,也是GC算法管理目标的重点区域。code

方法区

相似进程中的正文段。存储代码对应的字节码内容,是线程共享,随着虚拟机的销毁自动销毁,但不是GC内存管理的对象。对象

运行时常量区

随着类、或者接口加载到虚拟机后,就会建立运行时常量池,分配在方法区。接口

本地方法区

标记有native方法的Java代码。进程