1.介绍
Java不仅是一种编程语言,还是一系列计算机软件和规范组成的技术体系。
Java的口号是“写一次,到处跑”,能行”跨平台”,因为每个平台上不同的虚拟机屏蔽了硬件的差异,而Java程序运行在虚拟机上。
本文简要介绍了Java技术体系和Java虚拟机(JVM)的发展历史,然后进一步分析了Java虚拟机的细节。
PS:本文及以下JVM笔记主要来自周志明《Java虚拟机深度理解》(第3版)。
2.Java技术系统
广义来说,运行在Java虚拟机上的Kotlin、Groovy、JRuby等编程语言及其相关程序都属于Java技术体系。
传统上,由JCP官方定义的Java技术体系主要包括:
Java 程序设计语言各种硬件平台上的 Java 虚拟机Class 文件格式Java 类库 API商业机构和开源社区的第三方 Java 类库
其中,Java编程语言、Java虚拟机和Java类库统称为JDK(Java Development Kit),JDK是支持Java程序开发的最小环境。
Java类库API中的Java SE API子集和Java虚拟机统称为JRE(Java Runtime Environment),是支持Java程序运行的标准环境。
PS: JCP代表Java Community Process,即Java Community,由业界众多技术巨头组成的社区,用于定义和开发Java技术规范。
Java技术体系包括以下内容:
3.JVM家族
“Java虚拟机”只是一个概念,还有很多产品来实现。下面简单介绍一下它的开发过程。
Sun经典/精确虚拟机
Class VM (JDK 1.0)世界上第一款商用 Java 虚拟机纯解释器方式执行 Java 代码对象查找基于句柄Exact VM (JDK 1.2)准确式内存管理:虚拟机可以知道内存中某个位置的数据具体类型
热点虚拟机
Sun/OracleJDK 和 OpenJDK 中默认虚拟机目前使用范围最广的 Java 虚拟机
因为HotSpot虚拟机是目前应用最广泛的虚拟机,而且是目前OracleJDK和OpenJDK的默认虚拟机,所以下面文章的内容分析主要是针对这个虚拟机。
终端执行java -version命令如下(不同机器会有所不同,此处仅供参考):
$ java -versionjava version "1.8.0_191"Java(TM) SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot(TM) ***-Bit Server VM (build 25.191-b12, mixed mode)
这里的HotSpot(TM) ***位服务器虚拟机指的是HotSpot虚拟机。
移动/嵌入式虚拟机
Java ME 虚拟机
BEA JRockit/IBM J9虚拟机
这两个虚拟机曾被称为热点虚拟机”。三个商用Java虚拟机”。
JRockit专注于服务端应用不含解释器,全部代码都由即时编译器编译后执行J9 VM职责分离与模块化优于 HotSpot VM
BEA Liquid虚拟机/Azul虚拟机
与特定硬件平台绑定、软硬件配合的专有虚拟机
阿帕奇和谐/谷歌安卓达尔维克虚拟机
这两位是“虚拟机”,而不是“Java虚拟机”。
Harmony VM未通过 TCK 认证未大规模商用Dalvik VM未遵循《Java 虚拟机规范》不能直接执行 Java 的 Class 文件
微软JVM
曾经是 Windows 系统下性能最好的 Java 虚拟机
其他的
KVM:曾在***平台上得到广泛应用Java Card VM……
还有很多其他种类的虚拟机,就不一一列举了。值得注意的是一个比较新的Java虚拟机:Graal VM。
Graal虚拟机
2018年4月,甲骨文实验室披露的黑科技:Graal VM。
Graal VM的官方名称是”通用虚拟机”还有”多语言VM & # 8221,是在HotSpot虚拟机基础上增强的跨语言全栈虚拟机。As & # 8221任何语言”操作平台,包括:
Java、Scala、Groovy、Kotlin 等基于 Java 虚拟机之上的语言C、C++、Rust 等基于 LLVM 的语言,同时支持 JavaScript、Ruby、Python 等
如图所示:
此外,从JDK 10开始,HotSpot中增加了一个新的实时编译器:Graal编译器。
如果未来某一天HotSpot虚拟机真的被取代,Graal VM很可能”Upper & # 8221。
4.摘要
本文主要介绍了Java技术体系和Java虚拟机的发展历史。只需要了解这部分,虚拟机的主要内容后面再分析。
为了复习和总结,以上内容在这里整理成思维导图:
本文来自转身以后投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/504209.html