世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程
? 今天开始写下这个系列的读书笔记,用自己的方式把周志明老师的《深入理解Java虚拟机_JVM高级特性与最佳实践》书中的知识点大概记录下来,方便自己以后的重读。
? Java不仅仅是一门编程语言,还是一个由一系列软件和规范形成的技术体系,这个体系提供了完整的的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器等各种场合。
Sun官方所定义的Java技术体系包括:
? 我们可以把Java语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。
? 另外,可以把Java API类库中的JavaSE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。
? 下图展示了Java技术体系包含的内容,图片来自JavaSE1.8官方文档
? 根据技术服务领域划分Java技术体系可以分为4个平台:
Sun Class:Sun公司发布的JDK1.0中所带的虚拟机,这款虚拟机只能用纯解释器方式来执行Java代码,但如果外挂了 JIT 编译器,那么 JIT 编译器就完全替代了虚拟机的执行系统,解释器便不再工作了。简单地说,在 Sun Classic 虚拟机中,解释器与编译器无法共同存在。
Sun Exact VM:Sun 的虚拟机团队在JDK1.2时发布的虚拟机尝试解决 Classic VM 遇到的问题。它的执行系统解决了Classic VM 存在的解释器和编译器无法同时工作的问题,还具备了一些现代高性能处理器的特性,但这款虚拟机并没有被大规模使用过。
Sun HotSpot VM:使用最为广泛的 Java 虚拟机,但实际上,这个虚拟机并不是由 Sun 公司原生开发的,而是由一个叫 Longview Technologies 公司开发的。而 Sun 公司注意到了这款虚拟机在 JIT 编译上的许多优秀成果,于 1997 年收购了 Longview Technologies 公司。从 2000 年 JDK 1.3 发布,HotSpot VM 作为默认的虚拟机。
BEA JRockit / IBM J9 VM:BEA 公司的 JRockit 是一款专注于服务器硬件和服务端应用场景的虚拟机,其针对服务端场景做了大量的优化,因此其不太关注程序启动速度。JRockit 虚拟机内部不包含解释器实现,全部代码都靠即时编译器编译后执行。此外,其提供的 MissionControl 服务套件也十分强大。
IBM 公司的 J9 VM 则是一款比较通用的虚拟机,其定位应用于从服务端到桌面应用再到嵌入式的多用途虚拟机。IBM 公司开发 J9 VM 的目的是将其作为 IBM 公司各种 Java 产品的执行平台。
原文:https://www.cnblogs.com/story-xc/p/10827384.html