你知道JDK、JRE与JVM的区别吗

简介: JDK 的英文全称是 Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。Java 开发人员可以在 Windows、macOS、Solaris 和 Linux 上使用,是一个跨平台编程语言。JDK 帮助他们编写和运行 Java 程序。可以在同一台计算机上安装多个 JDK 版本。

什么是 JDK?

JDK 的英文全称是 Java Development Kit。JDK是用于制作程序和Java应用程序的软件开发环境。Java 开发人员可以在 Windows、macOS、Solaris 和 Linux 上使用,是一个跨平台编程语言。JDK 帮助他们编写和运行 Java 程序。可以在同一台计算机上安装多个 JDK 版本。

什么是 JRE?

JRE 的英文全称是 Java Runtime Environment。JRE 是一个旨在运行其他软件的软件(有点绕口)。它包含类库、加载器类和 JVM。简单来说,如果你想运行 Java 程序,你需要 JRE。如果您不是程序员,则无需安装 JDK,只需安装 JRE 即可运行 Java 程序。不过,所有 JDK 版本都与 Java Runtime Environment 捆绑在一起,因此无需在 PC 单独下载和安装 JRE。JRE 的完整形式是 Java 运行时环境。

什么是JVM?

JVM 的英文全称是Java Virtual Machine。JVM 是一个引擎,它提供运行时环境驱动 Java 代码或应用程序。它将 Java 字节码转换为机器语言。JVM 是 Java 运行环境 (JRE) 的一部分。它不能单独下载和安装。要安装 JVM,您需要安装 JRE。JVM的就是Java虚拟机。

在许多其他编程语言中,编译器为特定系统生成机器代码。但是,Java 编译器则称为 JVM 虚拟机生成代码。

主要区别

  • JDK是一个软件开发工具包,而JRE是一个允许Java程序运行的软件包,JVM则是一个执行字节码的环境。
  • JDK的全称是Java Development Kit,JRE的全称是Java Runtime Environment,而JVM的全称是Java Virtual Machine。
  • JDK 是平台相关的,JRE 也是平台相关的,但是 JVM 不是平台相关的。
  • JDK 包含开发、调试等工具。JRE 包含类库和其他支持文件,而软件开发工具不包含在 JVM 中。
  • JDK 附带安装程序,另一方面,JRE 仅包含执行源代码的环境,而 JVM 捆绑在软件 JDK 和 JRE 中。

为什么要使用 JDK?

以下是使用JDK的重要原因:

  • JDK 包含编写 Java 程序所需的工具,以及执行它们的 JRE。
  • 它包括编译器、Java 应用程序启动器、Appletviewer 等。
  • 编译器将用 Java 编写的代码转换为字节码。
  • Java 应用程序打开一个 JRE,加载必要的类,并执行它的 main 方法。

为什么要使用 JRE?

以下是使用 JRE 的重要原因:

  • JRE 包含类库、JVM 和其他支持文件。它不包含任何用于 Java 开发的工具,如调试器、编译器等。
  • 它使用重要的包和类,如 math、swingetc、util、lang、awt 和运行时库。
  • 如果您必须运行 Java 程序,就必须在您的系统中安装 JRE。

为什么选择JVM?

以下是使用 JVM 的重要原因:

  • JVM 提供了一种独立于平台的方式来执行 Java 源代码。
  • 它有许多库、工具和框架。
  • 一旦你运行 Java 程序,你就可以在任何平台上运行并节省大量时间。
  • JVM 带有 JIT(Just-in-Time)编译器,可将 Java 源代码转换为机器语言。因此,它比常规应用程序运行得更快。

JDK的特点

以下是 JDK的重要特性:

  • 它使您能够在单个 catch 块中处理多个扩展。
  • JDK 包含了 JRE 的所有特性。
  • 它包含开发工具,例如编译器、调试器等。
  • JDK 提供了开发和执行 Java 源代码的环境。
  • 它可以安装在 Windows、Unix 和 Mac 操作系统上。
  • 菱形运算符可用于指定泛型类型接口,而不是编写确切的类型接口。

JRE的特点

以下是 JRE 的重要特性:

  • Java 运行时环境是 JVM 实际运行所使用的一组工具。
  • JRE 包含部署技术,包括 Java Web Start 和 Java Plug-in。
  • 开发人员可以轻松地在 JRE 中运行源代码,但不能编写和编译 Java 程序。
  • 它包括集成库,如 Java 数据库连接 (JDBC)、远程方法调用 (RMI)、Java 命名和目录接口 (JNDI) 等。
  • JRE 有 JVM 和 Java HotSpot 虚拟机客户端。

JVM的特点

以下是 JVM 的重要特性:

  • 它使您能够在云环境或设备中运行应用程序。
  • Java 虚拟机将字节码转换为特定于机器的代码。
  • 它提供了基本的 Java 功能,如内存管理、安全性、垃圾收集等。
  • JVM 通过使用 Java Runtime Environment 提供的库和文件来运行程序。
  • JDK 和 JRE 都包含 Java 虚拟机。
  • 它可以逐行执行java程序,因此也称为解释器。
  • JVM 易于定制,例如,您可以为其分配最小和最大内存。
  • 它独立于硬件和操作系统。因此,您可以编写一次 java 程序并在任何地方运行。


目录
相关文章
|
3月前
|
存储 算法 Java
jvm性能优化(一)-基于JDK1.8
jvm性能优化(一)-基于JDK1.8
|
3月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
361 3
|
2月前
|
Java
Java基础之 JDK8 HashMap 源码分析(中间写出与JDK7的区别)
这篇文章详细分析了Java中HashMap的源码,包括JDK8与JDK7的区别、构造函数、put和get方法的实现,以及位运算法的应用,并讨论了JDK8中的优化,如链表转红黑树的阈值和扩容机制。
31 1
|
2月前
|
Dubbo Java 应用服务中间件
剖析Tomcat线程池与JDK线程池的区别和联系!
剖析Tomcat线程池与JDK线程池的区别和联系!
128 0
剖析Tomcat线程池与JDK线程池的区别和联系!
|
4月前
|
C# Windows 开发者
当WPF遇见OpenGL:一场关于如何在Windows Presentation Foundation中融入高性能跨平台图形处理技术的精彩碰撞——详解集成步骤与实战代码示例
【8月更文挑战第31天】本文详细介绍了如何在Windows Presentation Foundation (WPF) 中集成OpenGL,以实现高性能的跨平台图形处理。通过具体示例代码,展示了使用SharpGL库在WPF应用中创建并渲染OpenGL图形的过程,包括开发环境搭建、OpenGL渲染窗口创建及控件集成等关键步骤,帮助开发者更好地理解和应用OpenGL技术。
293 0
|
4月前
|
Java 编译器 开发工具
JDK vs JRE:面试大揭秘,一文让你彻底解锁Java开发和运行的秘密!
【8月更文挑战第24天】JDK(Java Development Kit)与JRE(Java Runtime Environment)是Java环境中两个核心概念。JDK作为开发工具包,不仅包含JRE,还提供编译器等开发工具,支持Java程序的开发与编译;而JRE仅包含运行Java程序所需的组件如JVM和核心类库。一个简单的"Hello, World!"示例展示了两者用途:需借助JDK编译程序,再利用JRE或JDK中的运行环境执行。因此,开发者应基于实际需求选择安装JDK或JRE。
59 0
|
4月前
|
缓存 Java 编译器
JRE、JDK、JVM 和 JIT 之间的区别详解
【8月更文挑战第22天】
160 0
|
4月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
757 4
|
4月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
62 1
|
2月前
|
Oracle Java 关系型数据库
jdk17安装全方位手把手安装教程 / 已有jdk8了,安装JDK17后如何配置环境变量 / 多个不同版本的JDK,如何配置环境变量?
本文提供了详细的JDK 17安装教程,包括下载、安装、配置环境变量的步骤,并解释了在已有其他版本JDK的情况下如何管理多个JDK环境。
1088 0