Java是在JVM上运行的,那么JVM运时是什么样子?
对于JVM运行时的数据区的理解用一个图来显示很形象,下面的图显示JVM运行时的数据区。
每个线程的数据区
从图中可以看出,每个线程有programcounter register(程序计数器),JVM
Stack(JVM栈),和NativeMethod
Stack(本地方法栈)。 这三个区域都是基于每一个线程的,当一个线程创建的时候生成。
程序计数器: 每一条JVM线程都有自己的PC寄存器,用来控制线程的执行。
JVM Stack(JVM栈): Stack里存放的是Frame(帧)(如下图所示)。
Native Method Stack(本地方法栈): 用来支持native
methods (非Java语言method)。
所有的线程共享数据区
所有的线程共享数据区有Heap和Method
Area.
Heap(堆)是与我们平时编程最直接打交道的区域。它存放所有的对象和数组。在JVM启动时划分生成。常说的Garbage
Collector垃圾回收器就是对这个区域工作的。
Method Area(方法区)存储类的结构信息,包括
run-time constant pool, fieldand method data, 和methodsand
constructors代码。
Runtime Constant Pool(运行时常量池)存放编译时可知的数值字面量和运行期解析后才能获得的method或field的引用。
Stack中的包含一些Frame,这些Frame在method调动的时候生成。每一个Frame包括:local
variable array, OperandStack, Reference to Constant Pool.
Reference:JVMSpecification
– Run-Time Data Areas
Related posts:
1.JVM
Run-Time Data Areas
2.What
can we learn from JavaHelloWorld?
3.What
does a Java array look like inmemory?
4.Get
variable name by usingFieldDeclaration
分享到:
相关推荐
第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行时数据区-02第3节: 揭秘JVM运行...
JVM运行机制深入分析,适用于研究java开发的人员,想深入理解jvm
JVM 运行机制。
JVM定义了若干个程序执行期间使用的数据区域。这个区域里的一些数据在JVM启动的时候创建,在JVM退出的时候销毁。其他的数据依赖于每一个线程,在线程创建的时候创建,在线程退出的时候销毁。
主要介绍了Java内存模型与JVM运行时数据区的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
JVM运行时数据区1 JVM运行时数据区2 解析JVM运行时数据区2.1 方法区(Method Area)2.2 Java堆(Java Heap)2.3 程序计数器(Program Counter Register)2.4 Java虚拟机栈(Java Virtual Machine Stacks)2.5 本地...
Java面试中JVM是必考考点,要想有个一好的工作,先从认识了解熟悉JVM开始,这个pdf很详细的讲述了JVM各个知识点
运行时数据区域: 在运行时数据区里存储类Class文件元数据(方法区),对象和数组(堆),方法参数局部变量(栈)等。 垃圾回收机制: java 语言的优势之一就是它的自动内存管理,主要回收运行时数据区域的堆内存里的数据 ...
java开发笔记,记录开发心得 帮助自己记忆 用于分享交流 作为软件开发者 需要有自己的cdsn 不存在侵权的问题
小池塘A(堆内存):JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。 小池塘B(非堆内存):包括所有线程之间共享的一个...
Java虚拟机运行原理,以及运行状态监控
SAP JVM 4.1 64 bits
JVM的生命周期 JVM的体系结构 JVM类加载器 JVM执行引擎 JVM运行时数据区 JVM垃圾回收 问题
深入JVM内核—原理、诊断与优化视频教程 深入JVM内核—原理、诊断与优化视频教程
JVM介绍入门到深入,通过全面了解JVM组成底层工作原理以及数据结构,在今后JVM深入分析中全面提升运行性能
Sun JVM原理与内存管理
主要介绍了JVM运行时数据区原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java jvm虚拟机.zip
主要介绍了JVM运行时数据区划分原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
jvm源码,jvm-native的源码,jvm支行机制,可对jvm的运行过程进行分析 个人网站:https://www.zhangjunbk.com