运行时栈帧结构
1.局部变量表 null JIT编译器优化
2.操作数栈 LIFO
3.动态链接 |
4.方法返回地址 | 栈帧信息
5.附加信息 |
——————————————————————————————————
方法调用
1.解析调用
符号引用 静态、私有、实例构造器、父类方法 final 非虚方法
2.分派
1.静态分派
虚拟机(编译器)在重载时是通过参数的静态类型而不是实际类型作为判断
静态类型在编译器是可期的,且选择更加适合的版本
2.动态分派
重写 invokevirtual 运行期确定接受者实际类型
3.单分派与多分派
方法的接收者与方法的参数统称为方法的宗量。
单分派 一宗量 多分派 多余一个宗量
Java语言静态多分派,动态单分派
4.虚拟机动态分派的实现
虚方法表 接口方法表 | 内联缓存 守护内联
——————————————————————————————————
基于栈的字节码解释执行引擎
1.解释执行 (/编译执行)
2.基于栈的指令集 可移植性,更紧凑,简单(/基于寄存器的指令集)速度快,受限硬件
3.基于栈的解释器执行过程
public int add(){ int a =1 ; int b = 2 ; return a+b };
0:bipush 1
2:istore_1
3:sipush 2
6:istore_2
7:iload_1
8:iload_2
9:iadd
10:ireturn
分享到:
相关推荐
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,并管理内存。Java虚拟机的结构复杂且高效,主要由类装载器、执行引擎、内存管理和类库等组件构成。 类装载器是JVM...
**JVM学习笔记(Java虚拟机)** Java虚拟机(JVM)是Java语言的核心组成部分,它是Java程序运行的平台,负责解释和执行字节码。深入理解JVM对于优化Java应用程序性能至关重要。本笔记将从以下几个方面详细介绍JVM:...
总结来说,了解Java虚拟机的学习笔记基础篇,可以帮助Java开发者更好地掌握Java程序的执行机制,理解类的加载、链接和初始化过程,以及JVM的内存模型和执行引擎的工作原理,从而编写出更加高效和稳定的Java应用程序...
4. **字节码执行** JVM的执行引擎执行字节码,这包括解释器和即时编译器(JIT)。解释器逐行执行字节码,而JIT会将热点代码编译成机器码以提高性能。 5. **垃圾收集** JVM通过垃圾收集机制自动管理内存,避免内存...
程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程私有的内存。 本地方法栈与栈类似,但服务于JVM运行的本地方法(Native Method)。 在JVM的执行过程中,类加载器(Class...
3. **字节码执行引擎**:JVM通过解释器和Just-In-Time (JIT)编译器执行字节码。解释器逐行解释执行,而JIT编译器则将热点代码编译成机器码,提升运行效率。 4. **垃圾收集机制**:JVM自动管理内存,通过垃圾收集器...
- **JVM (Java Virtual Machine)**: Java 虚拟机,负责解释执行字节码。 - **JRE (Java Runtime Environment)**: Java 运行时环境,包含 JVM 和运行 Java 程序所需的类库。 - **JDK (Java Development Kit)**: 包含 ...
Java虚拟机的执行引擎负责解释或编译字节码指令,使其能够在特定的硬件平台上执行。Java虚拟机支持约248种字节码指令,每条指令对应一项基本的计算任务,如整数加法或子程序跳转等。指令的执行流程通常遵循以下模式...
在讨论Java编程思想学习笔记时,首先需要了解的是Java语言的平台无关性,而这一特性正是通过Java虚拟机(JVM)得以实现的。JVM作为Java程序设计的关键组成部分,对于Java开发人员来说是必须掌握的基础知识。在该学习...
3. **字节码执行引擎**:解释器和即时编译器(JIT)负责执行字节码。解释器逐条执行字节码,而JIT会将频繁执行的代码编译成机器码以提高性能。 4. **垃圾收集器**:自动管理内存,通过标记-清除、复制、标记-整理、...
JVM是Java虚拟机,它是运行Java字节码的引擎,负责将字节码解释成具体平台的机器码执行。JRE(Java Runtime Environment)包含了运行Java程序必要的组件,包括JVM和核心类库。JDK(Java Development Kit)是开发工具...
Java的这种特性得益于其虚拟机——Java虚拟机(JVM),它使得Java代码能够在任何安装了JVM的设备上执行。 Java有三个主要的应用平台:Java Platform, Standard Edition (Java SE),Java Platform, Enterprise ...
1. **JVM**(Java虚拟机):运行Java字节码的引擎。 2. **JRE**(Java运行时环境):包含JVM和核心类库。 3. **JDK**(Java开发工具包):包括JRE和开发工具,如编译器`javac`。 #### 七、JDK的下载、安装、卸载 1...
- **JVM (Java Virtual Machine)**:Java 虚拟机,负责解释执行 Java 字节码。 - **JRE (Java Runtime Environment)**:Java 运行环境,包含了 JVM 和 Java 核心类库,用于运行 Java 程序。 - **JDK (Java ...
- **JVM**:是JRE的一部分,负责运行Java字节码,是Java平台的执行引擎。 5. JDK的安装目录结构中,各部分的作用如下: - **bin**:包含可执行文件,如编译器和解释器。 - **demo**:提供示例程序,帮助学习和...
类加载器负责查找和加载类,解释器将字节码转换为机器码,并由执行引擎运行。这个过程中还涉及到垃圾收集机制,自动回收不再使用的内存。 2. **内存管理**:在Java中,内存分为栈和堆两部分。栈主要存储基本类型...
JVM是Java程序的执行引擎,负责解释和执行字节码。JRE中的核心类库提供了一系列基础功能,如集合、网络、I/O等。 3. JVM运作原理 JVM是Java平台的核心,它实现了Java的跨平台特性。JVM通过加载、验证、准备、解析、...
JVM是Java程序运行的基础,它负责解释和执行字节码。这部分笔记会深入解析JVM的工作原理,如类加载机制、内存模型(堆、栈、方法区等)、垃圾收集机制和性能调优策略。通过理解JVM,开发者能更好地优化代码,减少...
- JVM 是一个可以执行 Java 字节码的虚拟机。 - 它负责将 Java 字节码转换为特定平台的机器码,并且管理内存、垃圾回收等任务。 - **Java 运行环境 (JRE)** - JRE 包含了运行 Java 应用程序所需的所有组件,包括...
5. **字节码执行**:JVM通过解释器将字节码转换为机器码执行,为了提高性能,JVM还实现了Just-In-Time(JIT)编译器,将热点代码编译成本地机器码。 6. **内存调优**:理解和调整JVM内存参数(如-Xms, -Xmx, -Xss等...