登录|注册|帮助中心|联系我们

导航
首页 综合百科 生活常识 数码科技 明星名人 传统文化 互联网 健康 影视 美食 教育 旅游 汽车 职场 时尚 运动 游戏 家电 地理 房产 金融 节日 服饰 乐器 歌曲 动物 植物
当前位置:首页 > 互联网

java学习体系框架(附学习路线图)

发布时间:2022年12月29日责任编辑:李小芳标签:java
1.前言

Java 不仅仅是一门编程语言,还是一个由一系列计算机软件和规范组成的技术体系。

Java 的广告词为 “一次编写,到处运行”,之所以能够做到”跨平台”,是因为每个平台上不同的虚拟机屏蔽了硬件的差异,而 Java 程序则是运行在虚拟机之上的。

本文简要介绍 Java 技术体系及 Java 虚拟机(Java Virtual Machine, JVM)的相关发展历程,后文再进一步分析 Java 虚拟机的详细内容。

?

PS: 本文及接下来的 JVM 笔记内容主要来自周志明《深入理解 Java 虚拟机(第3版)》。

2. Java技术体系

广义上讲,Kotlin、Groovy、JRuby 等运行于 Java 虚拟机上的编程语言及其相关程序都属于 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),JRE 是支持 Java 程序运行的标准环境。

?

PS: JCP 全称 Java Community Process,即 Java 社区,由业界多家技术巨头组成的社区,用于定义和发展 Java 的技术规范。

Java 技术体系包含的内容如下:

???3. JVM家族

“Java 虚拟机” 只是一个概念,它的实现产品众多,下面简要介绍其发展历程。

Sun Classic/Exact VM ??Class VM (JDK 1.0) ??????世界上第一款商用 Java 虚拟机 ???纯解释器方式执行 Java 代码 ???对象查找基于句柄 ????Exact VM (JDK 1.2) ??????准确式内存管理:虚拟机可以知道内存中某个位置的数据具体类型 ????HotSpot VM ??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) 64-Bit Server VM (build 25.191-b12, mixed mode)

这里的 HotSpot(TM) 64-Bit Server VM 指的就是 HotSpot 虚拟机。

Mobile/Embedded VM ??Java ME 虚拟机 ?BEA JRockit/IBM J9 VM

这两个虚拟机曾与 HotSpot 虚拟机并称”三大商业 Java 虚拟机”。

??JRockit ??????专注于服务端应用 ???不含解释器,全部代码都由即时编译器编译后执行 ????J9 VM ??????职责分离与模块化优于 HotSpot VM ????BEA Liquid VM/Azul VM ??与特定硬件平台绑定、软硬件配合的专有虚拟机 ?Apache Harmony/Google Android Dalvik VM

这两者是 “虚拟机”,而非 “Java 虚拟机”。

??Harmony VM ??????未通过 TCK 认证 ???未大规模商用 ????Dalvik VM ??????未遵循《Java 虚拟机规范》 ???不能直接执行 Java 的 Class 文件 ????Microsoft JVM ??曾经是 Windows 系统下性能最好的 Java 虚拟机 ?其他 ??KVM:曾在手机平台上得到广泛应用 ?Java Card VM ?…… ?

其他还有很多各种各样的虚拟机,不再一一列举。值得注意的是一个比较新的 Java 虚拟机:Graal VM。

Graal VM

2018 年 4 月,Oracle Labs 公开的黑科技:Graal VM。

Graal VM 被官方称为”Universal VM”和”Polyglot VM”,它是在 HotSpot 虚拟机基础上增强而成的跨语言全栈虚拟机。可作为”任何语言”的运行平台,包括:

??Java、Scala、Groovy、Kotlin 等基于 Java 虚拟机之上的语言 ?C、C++、Rust 等基于 LLVM 的语言,同时支持 Javascript、Ruby、Python 等 ?

如图所示:

???

而且自 JDK 10 起,HotSpot 中又加入了一个全新的即时编译器:Graal 编译器。

如若将来某一天 HotSpot 虚拟机真的被替换,Graal VM 很有可能”上位”。

4. 小结

本文主要介绍了 Java 技术体系和 Java 虚拟机的发展历程,该部分内容了解即可,后文再分析虚拟机的主要内容。

为便于回顾和总结,这里将上述内容整理成了思维导图:

其它知识推荐

溜溜百科知识网——分享日常生活学习工作各类知识。 垃圾信息处理邮箱 tousu589@163.com
icp备案号 闽ICP备14012035号-2 互联网安全管理备案 不良信息举报平台 Copyright 2023 www.6za.net All Rights Reserved