JVM 组成

类加载器
类加载器负责将字节码文件加载到内存中,主要会经历加载->连接->实例化这三个阶段
运行时数据区
定义了 Java 程序运行期间需要使用到的内存区域,简单来说,这块内存区域存放了字节码信息以及程序执行过程的数据,垃圾收集器也会针对运行时数据区进行对象回收的工作
执行引擎
负责将字节码转换为机器指令并执行,包含解释器与即时编译器
解释器:逐行解释字节码并执行,适用于程序首次运行时
即时编译器 JIT :将热点代码(频繁执行的代码)编译为机器码,提升执行效率
本地方法接口
调用非 Java 代码(如 C/C++),便于与操作系统或其他本地库交互
提供了跨语言调用能力,使 Java 程序可以访问操作系统级别的功能或高性能库
跨平台
java 程序在编译后生成字节码文件,运行在JVM上,在不同操作系统上都有各自实现的 JVM,负责将字节码翻译为特定平台的机器代码并执行
编译执行与解释执行
JVM 采用编译执行和解释执行相结合的方式:
解释执行:逐行读取字节码并翻译为机器码执行。启动速度快,无需等待编译
即时编译 JIT :将热点代码(频繁执行的字节码)直接编译成本地机器码,避免反复解释,提升性能
