探索JDK、JRE和JVM之间的联系:官方视角

发表时间: 2024-05-23 22:50

JVM 是一些大厂面试必问点,要想解决 OOM、性能调优方面的问题,掌握 JVM 知识必不可少,从今天开始,将为大家介绍 JVM 的常用知识。

1、Java 官网

Java 官网主页:
https://docs.oracle.com/en/java/index.html

Java 历史版本的官方文档地址:
https://docs.oracle.com/en/java/javase/index.html

Java 语言自 1995 年发布以来,Java 已经更新到 JDK 20了。目前绝大多数主流企业使用的版本是 JKD 8,点击之前版本列表中的 JDK 8,打开后如下:

开发人员指南:
https://docs.oracle.com/javase/8/docs/index.html

2、JDK,JRE,JVM的关系

从以上的架构图中可以看出,JDK 包含了 JRE 和 JVM,JRE 包含了 JVM。

JDK(Java SE Development Kit):JDK 包括 JRE 和命令行开发工具,如编译器和调试器,程序开发者必须安装 JDK 来编译、调试程序。

JRE(Java SE Runtime Environment):JRE 提供了 Java 运行时环境以及 JVM运行需要的类库。如果只是运行 Java 程序,可以只安装 JRE,不用安装 JDK。

JVM(Java Virtual Machines):Java 虚拟机是 JRE 的一部分,它具有指令集并在运行时操作内存,是一种抽象计算机,不同的操作系统使用不同的 JVM,JVM 是 Java 实现跨平台的核心,负责解释 class 文件为平台无关的字节码。

3、JVM 规范

Java 语言和虚拟机规范:

https://docs.oracle.com/javase/specs/index.html

这个页面里有 Java 6 到 Java 20 版本的所有语言和虚拟机规范,从中我们可以找到 Java SE 8。

点开以后,就能看到 Java 8 的虚拟机规范了,大家可以自行阅读。

后面将为大家介绍类加载机制与类加载器。