你已经分清JAVA中JVM、JDK与JRE的作用和关系了吗?
- 一. JVM、JDK与JRE的关系
- 二. JVM、JDK与JRE的作用
- 2.1 什么是JVM?
- 2.2 什么是JDK?
- 2.3 什么是JRE?
前言
点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。
作者:神的孩子都在歌唱
在Java的世界里,JVM、JDK和JRE这三个术语常常让人感到混淆。它们究竟是什么?有什么区别?如何协同工作,共同支持Java程序的运行?接下来 神唱 会带你一探究竟
一. JVM、JDK与JRE的关系
- JVM 是Java程序执行的核心,它负责执行字节码。
- JRE 包含JVM和Java类库,用于支持Java程序的运行。JRE没有开发工具,它是用户运行Java程序时所需要的环境。
- JDK 包含了JRE以及开发Java程序所需的其他工具(如编译器和调试器)。开发者需要安装JDK来编写和调试Java程序。
简单来说,JDK包括了JRE,而JRE又包括了JVM。如下图
二. JVM、JDK与JRE的作用
2.1 什么是JVM?
JVM(Java Virtual Machine)即Java虚拟机,是Java程序运行的核心组件之一。它的作用就像一个 “翻译官” ,将Java字节码(.class文件)转换为 机器码 ,让程序能够在不同的操作系统和硬件平台上运行。这也是Java语言实现 “一次编写,到处运行” 理念的关键。
JVM的核心职责包括:
- 加载字节码:JVM加载.class文件并进行验证。
- 解释执行或编译执行:JVM通过解释器或即时编译(JIT)技术执行字节码。
- 内存管理:JVM负责垃圾回收和内存的分配与释放。
值得一提的是,JVM与具体的操作系统和硬件平台紧密相关,因此每种平台 (Windows,Linux,macOS) 都有相应的JVM实现。所以JVM 并不是只有一种!只要满足 JVM 规范,每个公司、组织或者个人都可以开发自己的专属 JVM,我们平时接触的一般都是 HotSpot VM 。维基百科上有常见 JVM 的对比:Comparison of Java virtual machines
2.2 什么是JDK?
JDK(Java Development Kit)是Java开发工具包,它是开发Java应用程序的完整工具集。JDK包含了JVM以及用于开发Java程序所需要的各种工具和API。换句话说,JDK是开发者用来编写、调试、和运行Java程序的“武器库”。
JDK的主要组成部分包括:
- JVM:我们刚刚讲过的Java虚拟机,用于执行Java程序。
- Java编译器(javac):将Java源代码(.java文件)编译成字节码(.class文件)。
- 调试工具:用于在开发过程中调试Java程序。
- 标准库(Java API):JDK中包含了大量的标准类库,比如文件操作、网络编程、集合框架等。
- 其他工具:例如
jar
命令,用于创建和管理Java归档文件。
如果你是一个Java开发者,安装JDK是必不可少的一步。
2.3 什么是JRE?
JRE(Java Runtime Environment)是Java运行时环境,它是运行Java应用程序所需的最小环境。与JDK相比,JRE更为轻量,它不包含开发工具(比如编译器),只有JVM和一些支持运行Java程序的类库。
JRE的主要组成部分包括:
- JVM:用于执行Java程序。
- 类库(Java class Libaray):JRE包含了Java应用运行所需的标准类库,例如IO库、网络库等。
对于普通用户而言,安装JRE即可运行大部分的Java程序。
作者:神的孩子都在歌唱
本人博客:https://blog.csdn.net/weixin_46654114
转载说明:务必注明来源,附带本人博客连接