一、JVM通过执行引擎来完成字节码的执行,在执行过程中JVM采用的是自己的一套指令系统,每个线程在创建后,都会产生一个程序计数器(pc)和栈(Stack)。
其中pc中存放了下一条将要执行的指令;
Stack中存放Stack Frame,表示的为当前正在执行的方法,每个方法的执行都会产生Stack Frame,Stack Frame中存放了传递给方法的参数、方法内的局部变量以及操作数栈;
操作数栈用于存放指令运算的中间结果;
指令负责从操作数栈中弹出参与运算的操作数,指令执行完毕后再将计算结果压回到操作数栈;
当方法执行完毕后则从Stack中弹出,继续其他方法的执行。
在执行方法时JVM提供了invokestatic、invokevirtual、invokeinterface和invokespecial四种指令来执行
(1)invokestatic:调用类的static方法
(2) invokevirtual: 调用对象实例的方法
(3) invokeinterface:将属性定义为接口来进行调用
(4) invokespecial: JVM对于初始化对象(Java构造器的方法为:<init>)以及调用对象实例中的私有方法时。
二、执行技术
主要的执行技术有:解释,即时编译,自适应优化、芯片级直接执行
(1)解释:属于第一代JVM;
(2)即时编译:JIT属于第二代JVM;
(3)自适应优化:(目前Sun的HotspotJVM采用这种技术)则吸取第一代JVM和第二代JVM的经验,采用两者结合的方式。开始对所有的代码都采取解释执行的方式,并监视代码执行情况,然后对那些经常调用的方法启动一个后台线程,将其编译为本地代码,并进行仔细优化。若方法不再频繁使用,则取消编译过的代码,仍对其进行解释执行;
(4)芯片级直接执行:内嵌在芯片上,用本地方法执行Java字节码。
想深入了解JVM内存分配,请结合 http://hllvm.group.iteye.com/group/wiki/3053-JVM 这篇文章
文章整理自《JVM工作原理.ppt》
- 大小: 51 KB
分享到:
相关推荐
2.2、JVM体系结构 1、类加载器 2、执行引擎 3、运行时数据区 4、本地库接口 2.3、JVM内存参数调整及监控 1、JVM之内存调整 2、JVM监控工具之Jconsole 3、JVM监控工具之JProfile 加群:113035529 共同交流学习
**小菜鸟系列-JVM体系结构** Java虚拟机(JVM)是Java平台的核心组成部分,它为Java程序提供了跨平台的运行环境。理解JVM的体系结构对于优化代码性能、排查故障以及深入理解Java编程至关重要。在本文中,我们将探讨...
总的来说,JVM体系结构和GC调优是Java开发者的必备技能。通过深入理解这些概念和技术,我们可以有效地提升Java应用的性能,降低系统资源消耗,从而提供更好的用户体验。这个PPT无疑是学习和掌握这些知识的好资源。
执行引擎(Execution Engine)是JVM的核心组件之一,负责执行字节码指令。执行引擎可以通过解释器(Interpreter)以解释方式执行,也可以通过即时编译器(JIT Compiler)将字节码编译成本地代码执行,以提高效率。...
JVM的生命周期 JVM的体系结构 JVM类加载器 JVM执行引擎 JVM运行时数据区 JVM垃圾回收 问题
3. **执行引擎**:这是JVM的心脏,负责执行字节码。它包括解释器和即时编译器(如HotSpot JVM的C1和C2编译器),能将字节码转换为机器码以提高性能。 4. **垃圾收集器**(GC):Java的一大优势就是自动内存管理。...
字节码的执行则依赖于JVM执行引擎,它通过基于栈的体系结构来执行字节码指令。每个线程都会有一个程序计数器和栈来跟踪方法调用,栈中存放了栈帧,其中包含了局部变量区和操作数栈。 在Java平台中,JDK(Java ...
类加载器负责加载类文件,运行时数据区负责存储程序运行时的数据,执行引擎负责执行 Java 字节码。 为什么要学习 JVM?学习 JVM 主要有三个原因:面试的需要、中高级程序员必备技能和追求极客的精神。面试中,面试...
JVM体系结构是指虚拟机的内部构造,包括类加载器(Class Loader)、运行时数据区(Runtime Data Areas)、执行引擎(Execution Engine)、本地接口(Native Interface)和垃圾回收器(Garbage Collector)等组成部分...
1. **JVM架构**:JVM分为多个组件,包括类加载器、运行时数据区、执行引擎、本地方法接口(JNI)和垃圾收集器(GC)。类加载器负责加载类文件,运行时数据区存储程序运行时的各种数据,执行引擎包含解释器和Just-In-...
JVM的逻辑结构主要包括类加载系统、运行时数据区、执行引擎、本地接口等部分,这些构成了Java平台的核心。 - **类加载系统**:负责将.class文件中的二进制数据读入到内存中,进行字节码解析和动态链接,最终生成可...
JVM 的内部体系结构分为三部分:类装载器(ClassLoader)子系统,运行时数据区,和执行引擎。 类装载器 1. 启动类装载器:JVM 实现的一部分,负责装载系统类。 2. 用户自定义类装载器:Java 程序的一部分,必须是 ...
* 执行引擎,执行引擎的任务是负责执行class文件中包含的字节码指令,相当于实际机器上的CPU * 内存区,将内存划分成若干个区以模拟实际机器上的存储、记录和调度功能模块,如实际机器上的各种功能的寄存器或者PC...
4. 执行引擎(Execution Engine):负责解释和执行字节码,对于标记为native的方法,执行引擎会通过本地接口(Native Interface)加载本地方法库来执行。 【堆体系结构概述】 堆内存(Heap)是JVM中最大的一块内存...
JVM实现了Java语言规范中的虚拟机部分,包括类装载、字节码验证、执行引擎以及垃圾回收等关键功能。 **一、JVM结构** JVM主要由以下几个部分组成: 1. **类装载器**:负责加载.class文件,将其转换成Java对象,并...