JVM运行时数据区域

目录

摘要

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

区域

程序寄存器(PC寄存器)

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

Java虚拟机栈(Java栈)

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

Java堆

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

方法

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

运行时常量区

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

本地方法

标记native方法的Java代码

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...