JVM与JAVA体系结构

1、JVM是什么

JVM跨语言平台,只关心字节码文件是否符合jvm标准规范。是一个二进制字节码的运行环境。目前流行的jvm虚拟机为HotSpot VM。
JVM与JAVA体系结构
[跨语言] 任何语言通过编译生成字节码文件,只要满足jvm标准规范就可以在jvm虚拟机上解释运行
https://docs.oracle.com/javase/specs/index.html
JVM与JAVA体系结构

2、JDK&JRE&JVM

JVM与JAVA体系结构

3、JVM结构

JVM与JAVA体系结构

4、java代码执行流程

JVM与JAVA体系结构
操作系统不识别字节码文件,需要解释器、JIT编译器编译成操作系统支持的汇编语言和机器指令文件
解释器逐行解释字节码为机器指令
JIT编译器会将热点代码编译后保存在方法区的codecache缓存起来,方便多次调用。但延长了程序加载启动的时间
解释器+JIT=执行引擎

5、JVM架构模型

基于栈设计。
特点:跨平台、指令集小、指令多;执行性能比寄存器模型差。

6、JVM生命周期

启动、执行、退出
启动:通过引导类加载器创建一个初始类来完成启动。
执行:java程序执行时,实际是在java虚拟机执行一个进程。
退出:程序执行完毕;抛出异常或错误;操作系统错误导致java虚拟机进程终止;主动调用Runtime或System类的exit方法。

7、有影响力的虚拟机

HotSpot orcale jdk使用的虚拟机,支持服务器、桌面应用、嵌入式
JRockit VM 仅支持服务器端的虚拟机,不看重程序启动相应时间,因此内部不包含解析器实现,全部代码都靠即时编译器编译后执行,世界上最快的JVM。已被orcale收购。
J9 IBM自有JVM。支持服务器、桌面应用、嵌入式,与IBM内部硬件耦合度相对较高,使其效率也号称最快,但兼容性不如JRockit VM.