JVM虚拟机种类

前言

虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。

所谓的java虚拟机,就是一台虚拟的机器。它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机。visual Box、VMare就属于系统虚拟机。他们完全是对物理计算机的仿真,提供一个可运行完整操作系统的软件平台。而java虚拟机就是典型程序虚拟机,它专门为执行单个计算机程序而设计,在java虚拟机中执行的指令我们称之为java字节码指令。java发展到今天,出现了很多虚拟机,最初sun使用的叫Classic的java虚拟机,到现在使用最广泛的是HotSpot虚拟机,除了sun以外还有BEA的JRockit,目前JRockit和HotSpot都被甲骨文公司收入旗下,大有整合的趋势。

1.Sun Classic VM

1.现在此款虚拟机已经淘汰了,是第一款商用的虚拟机。
2.只能使用纯解释器的方式来执行Java代码。

2.Exact VM

1.Exact Memory Management准确式内存管理
2.编译器和解释器混合工作以及两级即时编译器
3.只在Solaris平台发布
4.英雄气短,就是存活时间短,被HotSpot取代

3.HotSpot VM

HotSpot VM的热点代码探测能力可以通过执行计数器找出最具有编译价值的代 码,然后通知JIT编译器以方法为单位进行编译。
如果一个方法被频繁调用,或方法中有效 循环次数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。 通过编译器与解释器
恰当地协同工作,可以在最优化的程序响应时间与最佳执行性能中取得平衡,而且无须等待
本地代码输出才能执行程序,即时编译的时间压力也相对减小,这样有助于引入更多的代码 优化技术,输出质量更高的本地代码

4.KVM(Kilobyte)

KVM中的K是“Kilobyte”的意思,它强调简单、 轻量、 高度可移植,但是运行速度比较 慢。 在Android、
iOS等智能手机操作系统出现前曾经在手机平台上得到非常广泛的应用。

5.JRockit

1.JRockit VM曾经号称“世界上速度最快的Java虚拟机”
2.由于专注于服务器端应用,它可以不太关注程序启动速度,因此JRockit内部不包含解析器实现,全部代码都靠即时 编译器编译后执行。 除此之外,JRockit的垃圾收集器和MissionControl服务套件等部分的实 现,在众多Java虚拟机中也一直处于领先水平

6.J9

1.IBM J9 VM并不是IBM公司唯一的Java虚拟机,不过是目前其主力发展的Java虚拟机,IBM J9 VM原本是内部开发代号, 正式名称是“IBM Technology for Java Virtual
Machine”,简称IT4J,只是这个名字太拗口了一点,普及程度不如J9.

2.与BEA JRockit专注于服务器端应用不同,IBM J9的市场定位与Sun HotSpot比较接近,它是一款设计上***从服务器端 到桌面应用再到嵌入式都全面考虑的多用途虚拟机***,J9的开发目的是作为IBM公司各种Java产品的执行平台,它的主
要市场是和IBM产品(如IBM WebSphere等)搭配以及在IBM AIX和z/OS这些平台上部署Java 应用。

7.Azul VM

Azul VM是Azul Systems公司在HotSpot基础上进行大量改进,运行于Azul Systems公司的
专有硬件Vega系统上的Java虚拟机,每个Azul VM实例都可以管理至少数十个CPU和数百GB
内存的硬件资源,并提供在巨大内存范围内实现可控的GC时间的垃圾收集器、 为专有硬件 优化的线程调度等优秀特性。 在2010年,Azul
Systems公司开始从硬件转向软件,发布了自 己的Zing JVM,可以在通用x86平台上提供接近于Vega系统的特性。

8.Liquid VM

Liquid VM即是现在的JRockit VE(Virtual Edition),它是BEA公司开发的,可以直接运
行在自家Hypervisor系统上的JRockit VM的虚拟化版本,Liquid VM不需要操作系统的支持,
或者说它自己本身实现了一个专用操作系统的必要功能,如文件系统、 网络支持等。 由虚拟
机越过通用操作系统直接控制硬件可以获得很多好处,如在线程调度时,不需要再进行内核
态/用户态的切换等,这样可以最大限度地发挥硬件的能力,提升Java程序的执行性能。

9.Dalvik VM

1.Dalvik VM只能称做“虚拟机”,而不能称做“Java虚拟机”,它没有遵循Java虚拟机规范,不能直接执行Java 的Class文件,使用的是寄存器架构而不是JVM中常见的栈架构。
2.但是它与Java又有着千丝万缕的联系,它执行的dex(Dalvik Executable)文件可以通过Class文件转化而来,使用Java语 法编写应用程序,可以直接使用大部分的Java API等。

10.Microsoft JVM

1.微软公司为了在IE3中支持Java Applets应用而开发了自己的Java虚拟机,虽然这款虚拟机只有Windows平台的版本,却 是当时Windows下性能最好的Java虚拟机。

————————————————
版权声明:本文为CSDN博主「唐僧不近女色」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
参考文章:
https://blog.csdn.net/weishuai528/article/details/89885626
https://blog.csdn.net/qq_34872215/article/details/79660141

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值