思维导图
目录
一、JVM简介
JVM是Java Virtua Machine的简称,意为Java虚拟机
虚拟机是指通过软件模拟的具有完整硬件功能的、运⾏在⼀个完全隔离的环境中的完整计算机系统
常⻅的虚拟机:JVM、VMwave、Virtual Box
JVM和其他两个虚拟机的区别:
1. VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;
2. JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进⾏了裁剪。
JVM是⼀台被定制过的现实当中不存在的计算机
二、JVM运行流程
程序在执⾏之前先要把java代码转换成字节码(class⽂件),JVM⾸先需要把字节码通过⼀定的⽅式类加载器(ClassLoader)把⽂件加载到内存中运⾏时数据区(Runtime Data Area),⽽字节码⽂件是JVM的⼀套指令集规范,并不能直接交个底层操作系统去执⾏,因此需要特定的命令解析器执⾏引擎(Execution Engine)将字节码翻译成底层系统指令再交由CPU去执⾏,⽽这个过程中需要调⽤其他语⾔的接⼝本地库接⼝(Native Interface)来实现整个程序的功能,这就是这4个主要组成部分的职责与功能
总结来看,JVM主要通过分为以下4个部分,来执⾏Java程序的,它们分别是:
1. 类加载器(ClassLoader)
2. 运⾏时数据区(Runtime Data Area)
3. 执⾏引擎(Execution Engine)
4. 本地库接⼝(Native Interface)