什么是JVM?
JVM全称是Java Virtual Machine,中文译名Java虚拟机。
JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。

?JVM的功能
jvm的功能主要分为三部分:
- 解释和运行
- 对字节码文件中的指令,实时的解释成机器码,让计算机执行
- 内存管理
- 自动为对象、方法等分配内存
- 自动的垃圾回收机制,回收不再使用的对象
- 即时编译
JVM的功能-即时编译
从下图可以看出如果Java语言如果不做任何优化,性能不如C、C++等语言。

?Java需要实时解释,主要是为了支持跨平台特性。

?jvm即时编译
?
常见的JVM类型

常见的JVM:Java虚拟机规范
- 《Java虚拟机规范》由Oracle制定,内容主要包含了Java虚拟机在设计和实现时需要遵守的规范,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
- 《Java虚拟机规范》是对虚拟机设计的要求,而不是对Java设计的要求,也就是说虚拟机可以运行在其他的语言比如Groovy、Scala生成的class字节码文件之上。
- 官网地址:https://docs.oracle.com/javase/specs/index.html