JVM

2017-09-05  本文已影响0人  看风景的人_21744

JVM

帮助指令代码(字节码)与底层进行(操作系统平台和执行指令并管理资源的硬件体系结构)交互。对于字节码来说,它能够模拟机器的寄存器、堆栈等等,它是“一个真实机器有效、独立的复制品。

jvm java

类加载器

每一个在JRE上运行的Java程序都会创建一个JVM实例。编译后的Java类文件和其他被依赖的类文件会被加载到运行环境中。这一步由类加载器协助完成。

类加载器

当运行一个JVM示例时,系统将分配给它一块内存区域(这块内存区域的大小可以设置的),这一内存区域由JVM自己来管理。


runtime data areas

分出来的这一块就称为运行数据区域。运行数据区域可以划分为6大块:Java栈、程序计数寄存器(PC寄存器)、本地方法栈(Native Method Stack)、Java堆、方法区域、运行常量池(Runtime Constant Pool)。前面3各区域(PC寄存器、Java栈、本地方法栈)是每个线程独自拥有的,后三者则是整个JVM实例中的所有线程共有的。

java stack

每个栈帧包含三个部分:本地变量数组,操作数栈,方法所属类的常量池引用。


方法调用时的stack

执行引擎

类加载器将字节码载入内存之后,执行引擎以Java 字节码指令为单元,读取Java字节码。将字节码转化成平台相关的机器码。这个过程可以由解释器来执行,也可以由即时编译器(JIT Compiler)来完成。

JIT

总结

JVM
上一篇 下一篇

猜你喜欢

热点阅读