Java虚拟机 之 虚拟机发展史

从1991年Oak项目的启动到今日,Java虚拟机经历了ClassicVM、ExactVM、HotSpotVM等众多版本的迭代。各虚拟机如JRockit专注服务器应用,KVM适用于手机平台,DalvikVM为Android核心组件,MicrosoftJVM曾是Windows下性能之王。本文回顾Java虚拟机发展历程,介绍各款虚拟机特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在1991年4月,由James Gosling领导的一项以能够在各种消费性电子产品上运行的程序架构为目的的计划开始启动,此项计划的产品为Oak。

1995年5月23日,Oak语言改名Java,并在SunWorld大会发布,并提出了“Write Once,Run Anywhere”的口号。

从此拉开了Java的序幕……

下面将大致介绍几款Java虚拟机,仅作了解,为将来的学习做一些铺垫。

 

Classic VM(Sun)

1. 世界上第一款商用Java虚拟机(现已被淘汰)。

2. 纯解释器的方式执行Java代码,如果想要编译只能使用外挂的形式使用编辑器。这样,由于解释器和编译器不能配合工作,如果要使用编译器执行,那么编译器需要对每一个方法、每一段代码都需要编译,无论它们执行频率是否具有被编译的价值。

 

Exact VM (Sun)

1. 使用准确式内存管理(Exact Memory Management),因此得名。

2. 已具备了高性能虚拟机的雏形:编译器和解释器混合工作;两级及时编译器。

3. 只在Solaris平台发布。

 

HotSpot VM (Sun)

1. 具备了热点代码探测技术。所谓热点代码探测技术,就是通过计数器找出最具有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。

2. 如果一个方法被频繁调用,或者方法中有效循环次数很多,将会分别触发标准编译和栈上替换编译动作。

 

KVM (Sun)

1. 一款嵌入式虚拟机产品。

2. 简单、轻量、高度可移植;但是运行速度较慢。

3. 在手机平台运行。

 

JRockit (BEA)

1. 专注于服务器端应用。

2. 实现了垃圾收集器和MissionControl服务套件(内存泄漏工具)。

 

J9 VM (IBM)

全称:IBM Technology for Java virtual Machine。

简称:IT4j。

属于 服务端 + 桌面应用 + 嵌入式 的多用途虚拟机。

 

Dalvik VM (Google Android)

1. Android平台核心组成部分之一。

2. Dalvik其实并不算一个Java虚拟机,因为它没有遵循Java虚拟机的规范,不能直接执行编译后的class文件。

3. Dalvik所使用的是寄存器架构,而不是栈架构。

4. 它所执行的是dex文件(Dalvik Executalbe),这文件可以由class转化而来。

5. Dalvik随Android的发展而迅猛发展。

 

Microsoft JVM (Microsoft)

1. 只有Windows平台可以运行,并且是Windows下性能最好的虚拟机。

2. 最终以Sun公司起诉微软公司而告终。

 

Azul VM (Azul Systems)

1. Java虚拟机中高性能虚拟机。

2. 在HotSpot的基础上进行一些改进,运行在公司自己的专有硬件上。

 

Liquid VM (BEA)

不需要操作系统对它的支持。

 

Taobao VM (Alibaba)

1. 国产虚拟机。

2. 根据HotSpot进行深度定制的虚拟机产品,只适合Alibaba公司。

3. 对硬件依赖性较高,编译过程只能使用英特尔CPU,损失了兼容性,提高了性能。

4. 在JNI调用时可降低调用开销。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值