java虚拟机HotSpot

一、java与java虚拟机:

1、java虚拟机:虚拟机可以分为系统虚拟机(如Visual Box、VMware)和程序虚拟机。程序虚拟机的典型代表就是Java虚拟机,在java虚拟机中执行的指令称为java字节码指令。

Java虚拟机是Java代码运行的容器,Java程序编译后的字节码文件需要经过虚拟机的解释才能被机器所识别。

2、java虚拟机种类:市面上主流的java虚拟机有以下几种:

(1)Sun Classic VM:1996年1月23日,Sun公司发布了JDK1.0,Java语言首次拥有了商用的正式运行环境,就是Classic VM,这款虚拟机只能以纯粹的解释器方式来执行字节码文件,想要使用即时编译器的话,则需要进行外挂,但是外挂即时编译器后,即时编译器就将完全接管虚拟机的执行系统,将导致解释器不再工作,因此无法进行搭配,后果就是如果非要用编译执行的话,编译器需要对每一行代码都进行编译,同时基于编译程序响应时间的压力,编译器不敢应用编译耗时稍高的优化技术,因此此时的即时编译器输出的本地代码与传统的C/C++程序依然有较大差距,“Java语言很慢”的刻板印象也是从这个时候开始的。

(2)Exact VM: Classic VM存在的许多问题Sun公司自然是知道的,因此官方团队努力去解决这些问题,提升运行效率,于是到了JDK1.2的时代,曾在Solaris平台发布过一款Exact VM,他的编译执行系统已经具备现代高性能虚拟机的雏形,已经引入了热点探测、两集即时编译器、编译器与解释器混合工作等技术了。但Exact VM大概是生不逢时吧,还没来得及发布Windows与Linux平台的商用版本,就被外部引入的HotSpot VM所取代。
(3)HotSpot VM: 是Sun/OracleJDK和OpenJDK的默认虚拟机,也是目前使用最广泛的Java虚拟机,HotSpot VM一开始并不是由Sun公司开发的,而是一家名为"Longview Technologies"的小公司设计得,甚至这个虚拟机最初并不是为Java语言所设计得,他来源于Strongtalk虚拟机,Strongtalk的很多技术其实是来源于一款为了支持Self语言实现“达到C语言50%以上的执行效率”的目标而设计得Self虚拟机;Sun公司意识到这款虚拟机的许多优势,于是在1997年收购了该公司,从而获得了HotSpot VM。

由于HotSpot占用绝对的市场地位,本专栏后面java虚拟机都是针对HotSpot。

二、java语言规范:详见java语法。

三、java虚拟机规范:

1、作用:java虚拟机是一台执行java字节码的虚拟计算机,注意其除了可以运行java语言编译生成的java字节码,还可以运行由Groovy、Scala等语言生成的java字节码。

2、优点:跨平台性、优秀的垃圾回收器、可靠的的及时编译器。

3、规范:JDK 21 Documentation - Home (oracle.com)

4、编译虚拟机:

5、调试虚拟机:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值