简单了解 JVM

JVM 简介

JVM是JavaVirtualMachine的简称,意为Java虚拟机。

虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统。 常⻅的虚拟机:JVM、VMwave、VirtualBox。

JVM和其他两个虚拟机的区别:

  1. VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;

  2. JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进 ⾏了裁剪。

JVM是⼀台被定制过的现实当中不存在的计算机。

JVM 运⾏流程

JVM是Java运⾏的基础,也是实现⼀次编译到处执⾏的关键,那么JVM是如何执⾏的呢?

JVM 执⾏流程

程序在执⾏之前先要把java代码转换成字节码(class⽂件),JVM⾸先需要把字节码通过⼀定的⽅式 类加载器(ClassLoader) 把⽂件加载到内存中运⾏时数据区(RuntimeDataArea) ,⽽字节码⽂ 件是JVM的⼀套指令集规范,并不能直接交个底层操作系统去执⾏,因此需要特定的命令解析器 执⾏引擎(ExecutionEngine) 将字节码翻译成底层系统指令再交由CPU去执⾏,⽽这个过程中需要 调⽤其他语⾔的接⼝**本地库接⼝(NativeInterface)**来实现整个程序的功能,这就是这4个主要组成 部分的职责与功能。

总结来看,JVM主要通过分为以下4个部分,来执⾏Java程序的,它们分别是:

  1. 类加载器(ClassLoader)

  2. 运⾏时数据区(RuntimeDataArea)

  3. 执⾏引擎(ExecutionEngine)

  4. 本地库接⼝(NativeInterface)

相关推荐
wuminyu9 分钟前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++
happymade9 分钟前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
郝学胜-神的一滴11 分钟前
C++11 工程级应用 08:Lambda表达式与Tuple元组
开发语言·jvm·c++·python·程序人生·开源
啊阿狸不会拉杆19 分钟前
《计算机网络-自顶向下方法》4.1 网络层概述 读书笔记
网络·计算机网络·智能路由器·网络层
Shadow(⊙o⊙)34 分钟前
Linux网络——文件与网络的连接桥梁struct sock {
linux·运维·网络
李永奉35 分钟前
中科蓝讯SDK开发-提示音音频文件格式转换和压缩教程
网络·单片机·嵌入式硬件·mcu·物联网
sunoo-2291 小时前
【网络编程 + 数据库】select 与 epoll 核心区别详解 + SQLite 入门到 C 接口全攻略
linux·网络·数据库·vscode·学习·sqlite
长脖鹿Johnny1 小时前
游戏输入系统框架设计(三):网络输入权威与可验证性
网络·游戏·游戏开发·架构设计·输入系统·网络同步
Mortalbreeze1 小时前
深入理解 Linux IO 模型(二):多路复用——select
linux·运维·服务器·网络·tcp/ip
SamChan901 小时前
PDF翻译服务端到端基准测试:4款主流方案的吞吐量、延迟、内存占用对比
服务器·网络·python·ai·pdf·wpf