学习JVM
目前先跟着B站中的黑马程序员的课程黑马程序员JVM虚拟机入门到实战全套视频教程
JVM
JVM
全程是J
ava V
irtual M
achine, 中文译名Java虚拟机
。
JVM的本质
JVM本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件
。
JVM的核心功能
JVM有三大
核心功能,分别是解释和运行
、内存管理
和即时编译
。
解释和运行
- 对字节码文件中的指令,实时的解释成机械码,让计算机执行
即时编译
JVM的即时编译(Just-In-Time compilation,JIT编译)是一种在运行时
将Java字节码转换为本地机器代码的技术。
在传统的解释执行模式下,Java程序在运行时由Java虚拟机(JVM)逐行解释执行字节码。
- Java语言如果不做任何优化的话,性能是不如C、C++等语言的。
- 实时解释主要是为了支持跨平台特性
有了实时解释,就可以将一份相同的Java语言代码,编译成在不同平台都可执行的机械码。
- 由于JVM需要实时解释虚拟机指令,如果不做任何优化性能肯定是不如直接运行机械码的C、C++等语言的。
于是为了提高程序的执行效率Java就有了即时编译。
- JVM提供即时编译(JIT)进行性能提升,最终能达到捷俊C、C++语言的运行性能。甚至在也定场景下实现超越
JIT编译器可以根据程序的实际执行情况,选择性地将部分字节码编译成机器代码,这样可以使得频繁
执行的代码片段获得更高的执行速度
。通常,JIT编译器会根据程序的热点
(HotSpot)来确定哪些代码需要进行编译优化从而提高
程序的执行效率
。
- 对热点代码进行优化,提升执行效率
JIT编译器的引入,使得Java程序在执行速度上能够接近甚至超越一些静态编译语言,同时仍然保留了Java的跨平台特性。
内存管理
先进行初步理解,后续深入研究。
- 自动为对象、方法等分配内存
- 自动的垃圾回收机制,回收不再使用的对象
常见的JVM虚拟机
常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。
Java虚拟机规范
- 《Java虚拟机规范》由Oracle制定,内容主要包含了Java虚拟机在设计和实现时需要遵守的规则,主要包含class字节码文件的定义、类和接口的加载和初始化、指令集等内容。
- 《Java虚拟机规范》是对虚拟机设计的要求,而不是对Java设计的要求,也就是说虚拟机可以运行在其他语言比如Groovy、Scala生成的class字节码文件之上。
- 官网地址:https://docs.oracle.com/javase/specs/index.html
HotSpot的发展历程
总结
- JVM到底是什么?
JVM
全程是J
avaV
irtualM
achine, 中文译名Java虚拟机
,是一个运行在计算机上的程序,他的职责是运行Java字节码文件
。 - JVM的三大核心功能是什么?
JVM包含内存管理、解释执行虚拟机指令、即时编译三大功能 - 常见的JVM虚拟机有哪些?
常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。