【Java核心】JDK、JRE、 JVM的联系与区别

简介: 【Java核心】JDK、JRE、 JVM的联系与区别


1. 简述


简单来说

JDK 是开发 Java 程序所需的工具包,包含了 JRE,并且额外提供了开发工具和库。JRE 是 Java 的运行时环境,包含了JVM。JVM 是运行 Java 程序的虚拟机。




2. 是什么


JDK、JRE 和 JVM 是与 Java 相关的三个重要术语,它们在 Java 开发和执行过程中扮演不同的角色,有着密切的联系:

  1. JVM(Java Virtual Machine,Java 虚拟机):JVM 是 Java 的核心组件之一,它是一个虚拟的计算机环境,负责在运行 Java 程序时解释和执行 Java 字节码。JVM 是跨平台的关键,它能够将编写的 Java 代码在不同操作系统上运行,将字节码翻译成与底层操作系统和硬件相匹配的机器码。同时,JVM 还负责内存管理、垃圾回收、线程管理等任务。
  2. JRE(Java Runtime Environment,Java 运行时环境):JRE 是 Java 应用程序的运行环境,包含了 JVM 和 Java 标准类库(Java API),它提供了 Java 程序运行所需的核心类库和支持文件。JRE 是给用户或最终用户使用的,它只包含运行 Java 程序所需的组件,不包含编译器和其他开发工具。
  3. JDK(Java Development Kit,Java 开发工具包):JDK 是用于开发 Java 应用程序的软件包,它包含了 JRE,同时还提供了编译器(javac)、调试器(jdb)、文档生成工具(javadoc)以及其他开发所需的工具和库。JDK 是给开发人员使用的,它提供了编写、编译和调试 Java 程序的一切必要组件。




3. 联系和区别


JDK、JRE、JVM三者的联系和区别

  • JDK 是用于开发 Java 程序的工具包,包括了 JRE,同时提供了编译器(javac)和其他开发工具。
  • JDK 针对开发人员和编写 Java 程序的环境,JRE 针对最终用户和运行 Java 程序的环境。
  • JDK 包含了 JRE,但是 JRE 没有包含 JDK 的开发工具部分。
  • JVM 是运行 Java 程序的虚拟机,JRE 则是包含 JVM 和 Java 标准类库的运行时环境。



目录
相关文章
|
11天前
|
存储 算法 Java
jvm性能优化(一)-基于JDK1.8
jvm性能优化(一)-基于JDK1.8
|
11天前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
27 1
|
17天前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
|
11天前
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
15 3
java基础(4)public class 和class的区别及注意事项
|
6天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
15 4
ly~
|
9天前
|
安全 Java 大数据
php跟java有什么区别
PHP 和 Java 是两种常用编程语言,各有特色。PHP 语法简洁灵活,适用于快速开发中小型网站,尤其在 Web 脚本和数据库交互中表现出色。Java 则语法严谨,强类型特性使其在企业级应用、移动开发及大数据处理中更受欢迎,具备高稳定性和安全性。通过优化,PHP 性能可提升,而 Java 在大规模应用中表现更佳。总体而言,PHP 开发效率高但维护性稍差,Java 则更注重代码质量和安全性。
ly~
17 5
|
15天前
|
Java 大数据 API
Java 流(Stream)、文件(File)和IO的区别
Java中的流(Stream)、文件(File)和输入/输出(I/O)是处理数据的关键概念。`File`类用于基本文件操作,如创建、删除和检查文件;流则提供了数据读写的抽象机制,适用于文件、内存和网络等多种数据源;I/O涵盖更广泛的输入输出操作,包括文件I/O、网络通信等,并支持异常处理和缓冲等功能。实际开发中,这三者常结合使用,以实现高效的数据处理。例如,`File`用于管理文件路径,`Stream`用于读写数据,I/O则处理复杂的输入输出需求。
|
8天前
|
Oracle Java 关系型数据库
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
如果遇到"exec format error"问题,文章建议先检查Linux操作系统是32位还是64位,并确保安装了与系统匹配的JDK版本。如果系统是64位的,但出现了错误,可能是因为下载了错误的JDK版本。文章提供了一个链接,指向Oracle官网上的JDK 17 Linux版本下载页面,并附有截图说明。
Linux下JDK环境的配置及 bash: /usr/local/java/bin/java: cannot execute binary file: exec format error问题的解决
|
20天前
|
机器学习/深度学习 人工智能 安全
python和Java的区别以及特性
Python:适合快速开发、易于维护、学习成本低、灵活高效。如果你需要快速上手,写脚本、数据处理、做点机器学习,Python就是你的首选。 Java:适合大型项目、企业级应用,性能要求较高的场景。它类型安全、跨平台能力强,而且有丰富的生态,适合更复杂和规模化的开发。
21 3
|
27天前
|
Java API 开发者
【Java模块化新飞跃】JDK 22模块化增强:构建更灵活、更可维护的应用架构!
【9月更文挑战第9天】JDK 22的模块化增强为开发者构建更灵活、更可维护的应用架构提供了强有力的支持。通过模块化设计、精细的依赖管理和丰富的工具支持,开发者可以更加高效地开发和管理应用,提高应用的性能和可维护性。
57 10
下一篇
无影云桌面