Java虚拟机 之 虚拟机发展史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/yichen97/article/details/90216968

在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调用时可降低调用开销。

猜你喜欢

转载自blog.csdn.net/yichen97/article/details/90216968