【JVM基础篇(一)】初识JVM

学习JVM

目前先跟着B站中的黑马程序员的课程黑马程序员JVM虚拟机入门到实战全套视频教程

JVM

JVM全程是Java Virtual Machine, 中文译名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虚拟机。
常见的JVM

Java虚拟机规范

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

HotSpot的发展历程

在这里插入图片描述

总结

  1. JVM到底是什么?
    JVM全程是Java Virtual Machine, 中文译名Java虚拟机,是一个运行在计算机上的程序,他的职责是运行Java字节码文件
  2. JVM的三大核心功能是什么?
    JVM包含内存管理、解释执行虚拟机指令、即时编译三大功能
  3. 常见的JVM虚拟机有哪些?
    常见的JVM有HotSpot、GraalVM、OpenJ9等,另外DragonWell龙井JDK也提供了一款功能增强版的JVM。其中使用最广泛的是HotSpot虚拟机。
  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值