1.1 Java技术体系
Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的 技术体系 。这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境。
Sun官方所定义的Java技术体系,按照领域来划分,包括以下几个组成部分:
- Java程序设计语言
- 各种硬件平台上的Java虚拟机
- Class文件格式
- Java API类库
- 来自商业机构和开源社区的第三方Java类库
我们把 Java程序设计语言,Java虚拟机,Java API类库 统称为 JDK (Java Development Environment),JDK是支持Java程序 开发 的最小环境。
我们把 Java API类库中的Java SE API子集 和 Java虚拟机称为 JRE (Java Runtime Environment),JRE是Java程序 运行 的标准环境。

1.2 Java虚拟机发展史
Sun Classic VM
Sun Classic VM 由Sun公司在1996年发布JDK1.0时发布,是”世界上第一款商用Java虚拟机“。它使用 纯解释器 的方式执行Java代码(解释器和编译器的区别) 。
如果它要使用JIT 编译器,就必须进行外挂,编译器就会接管虚拟机的执行系统,解释器不再工作。由于二者不能配合工作,编译器就需要对所有的方法和代码进行编译,无论其是否有编译的价值。
基于程序响应的压力,编译器又不敢应用编译耗时稍高的优化技术,因此当时“Java很慢”。
Sun HotSpot VM
HotSpot VM 由“Longview Technologies”公司设计,于1997年被Sun公司收购。
HotSpot名称所指的是它的热点代码探测技术。它可以通过执行计数器找到最有编译价值的代码,通知JIT编译器以方法为单位进行编译。
目前,HotSpot是Sun JDK和OpenJDK中所带的虚拟机,是目前使用范围最广的Java虚拟机。
BEA JRockit VM
JRockit为一款专门为服务器硬件和服务器端应用场景高度优化的虚拟机,专注于服务器速度,不关注程序启动速度。JRockit的垃圾收集器和MissionControl服务套件非常优秀。
2008年2009年,Oracle公司收购BEA公司和Sun公司,将Jrockit Vm的优秀特性融合到HotSpot VM上。
其他
还有很多虚拟机,在不同平台上由不同公司推出,这里只选择了目前主流使用的HotSpot的发展历史进行描述,不一一列举。
网友评论