JVM是如何运行的

JVM(Java Virtual Machine,Java虚拟机)是 Java 程序的运行环境,它负责将 Java 字节码翻译成机器代码并执行。也就是说 Java 代码之所以能够运行,主要是依靠 JVM 来实现的。

JVM 整体的大概执行流程是这样的:

  1. 程序在执行之前先要把 Java 代码转换成字节码(class 文件),JVM 首先需要把字节码通过一定的方式类加载器(ClassLoader) 把文件加载到内存中运行时数据区(Runtime Data Area)
  2. 但字节码文件是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此需要特定的命令解析器,也就是 JVM 的执行引擎(Execution Engine)会将字节码翻译成底层系统指令再交由 CPU 去执行;
  3. 在执行的过程中,也需要调用其他语言的接口,如通过调用本地库接口(Native Interface) 来实现整个程序的运行,如下图所示:

所以,整体来看, JVM 主要通过分为以下 4 个部分,来执行 Java 程序的,它们分别是:

  1. 类加载器(ClassLoader)
  2. 运行时数据区(Runtime Data Area)
  3. 执行引擎(Execution Engine)
  4. 本地库接口(Native Interface)
相关推荐
iAm_Ike5 小时前
Go 中自定义类型与基础类型间的显式类型转换详解
jvm·数据库·python
iuvtsrt5 小时前
Golang怎么实现方法集与接口的匹配_Golang如何理解值类型和指针类型实现接口的区别【详解】
jvm·数据库·python
wang3zc10 小时前
mysql如何提升InnoDB写入性能_对比MyISAM的写入锁机制
jvm·数据库·python
czlczl2002092514 小时前
MySQL 基于 GTID 的 Binlog 主从同步机制
java·jvm·mysql
CLX050515 小时前
C#怎么实现全局异常过滤器_C#如何捕获控制器报错【核心】
jvm·数据库·python
czhc114007566317 小时前
modbus 512 断线重连 db browser for sqlite
jvm
LJianK118 小时前
乐观锁算线程同步吗?
java·开发语言·jvm
何故染尘優19 小时前
面试八股文-01
java·jvm·面试
青柠代码录20 小时前
【JVM】面试题-Java中有哪些引用类型
java·jvm
cms小程序插件【官方】20 小时前
pbootcms版AI自动发文插件升级到3.0版本,支持多组关键词
jvm·人工智能