《深入理解Java虚拟机第三版》读书笔记(1)走进java

一、Java技术体系

1、JCP官方定义的技术体系包括:

  • Java程序设计语言
  • 各种硬件平台上的Java虚拟机实现
  • Class文件格式
  • Java类库API
  • 来自商业机构和开源社区的第三方Java类库

注:JCP(Java Community Process) 是一个开放的国际组织,主要由JAVA开发者以及被授权者组成,职能是发展和更新。

2、JDK与JRE划分

Java程序设计语言、Java虚拟机、Java类库这三部分统称为JDK(Java Development
Kit),JDK是用于支持Java程序开发的最小环境。

Java类库API中的Java SE API子集 和Java虚拟机这两部分统称为
JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。

JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,具体的下文会详细说明

3、Java技术体系所包括的内容

《深入理解Java虚拟机第三版》读书笔记(1)走进java

二、Java 为什么能跨平台,实现一次编写,多处运行?

Java 能够跨平台运行的核心在于 JVM 。不是 Java 能够跨平台,而是它的 jvm 能够跨平台。我们知道,不同的操作系统向上的 API 肯定是不同的,那么如果我们想要写一段代码调用系统的声音设备,就需要针对不同系统的 API 写出不同的代码来完成动作。

而 Java 引入了字节码的概念,jvm 只能认识字节码,并将它们解释到系统的 API 调用。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,但是同一段代码在编译后的字节码是一样的。引用上面的例子,在 Java API 层面,我们调用系统声音设备的代码是唯一的,和系统无关,编译生成的字节码也是唯一的。但是同一段字节码,在不同的 jvm 实现上会映射到不同系统的 API 调用,从而实现代码的不加修改即可跨平台运行。

三、HotSpot概述

HotSpot的定位是面向各种不同应用场景的全功能Java虚拟机

t概述

HotSpot的定位是面向各种不同应用场景的全功能Java虚拟机

能够在编译时指定一系列特性开关,让编译输出的HotSpot虚拟机可以裁剪成不同的功能,譬如支持哪些编译器,支持哪些收集器,是否支持JFR、AOT、CDS、NMT等都可以选择。能够实现这些功能特性的组合拆分,反映到源代码不仅仅是条件编译,更关键的是接口与实现的分离

相关文章: