简单了解 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)

相关推荐
旖旎夜光2 小时前
Linux(14)(上)
linux·网络
白太岁2 小时前
通信:(2) TCP/UDP、流量/拥塞控制、ARP 与 Socket 应用
网络·c++·tcp/ip·udp
byzh_rc11 小时前
[深度学习网络从入门到入土] 拓展 - Inception
网络·人工智能·深度学习
寻星探路11 小时前
【JVM 终极通关指南】万字长文从底层到实战全维度深度拆解 Java 虚拟机
java·开发语言·jvm·人工智能·python·算法·ai
野犬寒鸦13 小时前
从零起步学习并发编程 || 第九章:Future 类详解及CompletableFuture 类在项目实战中的应用
java·开发语言·jvm·数据库·后端·学习
tang7778914 小时前
一张图看懂 HTTP、SOCKS5 代理的区别
网络·网络协议·http
闻哥17 小时前
ConcurrentHashMap 1.7 源码深度解析:分段锁的设计与实现
java·开发语言·jvm·spring boot·面试·jdk·hash
枷锁—sha17 小时前
【CTFshow-pwn系列】03_栈溢出【pwn 045】详解:Ret2Libc 之 32位动态泄露(补充本地 Libc 手动加载指南)
服务器·网络·网络安全·系统安全
liann11917 小时前
4.3.2_WEB——WEB后端语言——PHP
开发语言·前端·网络·安全·web安全·网络安全·php