当前位置:首页 > 生活百科

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

栏目:生活百科日期:2025-05-09浏览:0

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 虚拟机的发展历程,该部分内容了解即可,后文再分析虚拟机的主要内容。

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

“java学习体系框架(附学习路线图)” 的相关文章

修复坏道要多久(教你修复坏的硬盘)

有许多朋友遇到过电脑硬盘出现问题的状况,今天分享修复硬盘坏道的技巧,硬盘坏道是硬盘最常出现的问题,感兴趣的朋友不妨一看。坏道检测与修复功能1、双击打开diskg...

linux基本指令的用法(linux常用基本命令实例)

一.Linux简介Windows很明显的特征就是有C盘、D盘等各种磁盘。Linux则很简单,只有一个根目录,也可以说只有一个盘,整个系统所有的东西都是在根目录下...

在线兼职一单一结靠谱吗(商家正规放单平台推荐)

孩子六个月了,为了减轻家庭的负担,我开始整理了几种兼职,希望可以帮助到大家。1.第一种就是手工制作(如钩假发,加工小零件等),这种相对简单,熟练了在家就可以制作...

systick定时器工作原理(systick最长定时时间)

1:属于Cortex内核的外设,内嵌在NVIC中2:24位向下递减的计数器3:重装载数据寄存器见到0时系统定时器就会产生一次中断4:仅仅只有4个寄存器来控制来源...

google关键词搜索技巧(带你玩转google关键词)

我们都知道,谷歌SEO做的就是页面的排名,而关键词则决定着你的页面有多大机会能够在词关键词下的搜索结果中得到好的排名。就写博客文章为例,如果你是在做博客的SEO...

华为笔记本测评,哪款笔记本功能好性价比最高

MateBookD14锐龙版到底如何呢?经过测试和使用发现并没有大家说的那么不堪,下面是详细的评测:外观&&设计:华为MateBook系列已经形成了自己...

hp laserjet m1005打印机驱动怎么安装(半分钟安装好打

今天来说一个跟打印机有关的话题,怎样给新装的打印机安装驱动,以爱普生R330喷墨打印机为例,首先是用数据线把打印机和电脑连接起来,然后打开打印机,看看电脑能不能...

window7旗舰版系统激活工具(小马win7永久激活工具)

Windows7和Windows10是现在PC端用户数最多的操作系统了,今天给大家分享激活windows7、windows10的方法。激活前注意激活前关闭所有杀...

商标注册需要多长时间,商标注册流程步骤一览

相信了解商标注册的朋友,都知道商标在注册时,需要花费的时间是特别之久的。那么到底注册商标需要多长时间呢,下面企帮帮小编就给您整理了以下材料,一起来看看吧。一、商...

ipad怎么升级系统版本(升级iOS 14的操作步骤)

6月23日,在WWDC2020上苹果公司发布了全新的iOS14系统,同时开放了公测版的下载。对于想要体验全新iOS14的网友,亓纪想对你们说:公测有风险,升级需...