JDK、JRE与JVM的区别

更新日期: 2022-02-16 阅读: 1.5k 标签: 区别

什么是 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 包含类库、JVM 和其他支持文件。它不包含任何用于 Java 开发的工具,如调试器、编译器等。

它使用重要的包和类,如 math、swingetc、util、lang、awt 和运行时库。

如果您必须运行 Java 程序,就必须在您的系统中安装 JRE。


为什么选择JVM?

JVM 提供了一种独立于平台的方式来执行 Java 源代码。

它有许多库、工具和框架

一旦你运行 Java 程序,你就可以在任何平台上运行并节省大量时间。

JVM 带有 JIT(Just-in-Time)编译器,可将 Java 源代码转换为机器语言。因此,它比常规应用程序运行得更快。


JDK的特点

它使您能够在单个 catch 块中处理多个扩展。

JDK 包含了 JRE 的所有特性。

它包含开发工具,例如编译器、调试器等。

JDK 提供了开发和执行 Java 源代码的环境。

它可以安装在 Windows、Unix 和 Mac 操作系统上。

菱形运算符可用于指定泛型类型接口,而不是编写确切的类型接口。


JRE的特点

Java 运行时环境是 JVM 实际运行所使用的一组工具。

JRE 包含部署技术,包括 Java Web Start 和 Java Plug-in。

开发人员可以轻松地在 JRE 中运行源代码,但不能编写和编译 Java 程序。

它包括集成库,如 Java 数据库连接 (JDBC)、远程方法调用 (RMI)、Java 命名和目录接口 (JNDI) 等。

JRE 有 JVM 和 Java HotSpot 虚拟机客户端。


JVM的特点

它使您能够在云环境或设备中运行应用程序。

Java 虚拟机将字节码转换为特定于机器的代码。

它提供了基本的 Java 功能,如内存管理、安全性、垃圾收集等。

JVM 通过使用 Java Runtime Environment 提供的库和文件来运行程序。

JDK 和 JRE 都包含 Java 虚拟机。

它可以逐行执行java程序,因此也称为解释器。

JVM 易于定制,例如,您可以为其分配最小和最大内存。

它独立于硬件和操作系统。因此,您可以编写一次 java 程序并在任何地方运行。


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/11176

相关推荐

AR / MR / VR / XR有什么区别?

VR能让人完全沉浸在虚拟环境中;AR能创建一个叠加在虚拟内容的世界,但不能与真实环境交互; MR则是虚拟与现实的混合体,它能创造出可以与真实环境交互的虚拟物体。最后,XR则是包括三种“现实”(AR,VR,MR)的术语。

Js插件、 组件、类库、框架的区别

框架和类库等概念的出现都是源于人们对复用的渴望。“不要重复发明轮子”,成了软件界的一句经典名言。从最初的单个函数源代码的复用,到面向对象中类的复用(通常以类库的形式体现)

理解screenX,clientX,pageX,offsetX,pageXoffset的区别

event.screenX、event.screenY鼠标相对于用户显示器屏幕左上角的X,Y坐标。标准事件和IE事件都定义了这2个属性,event.clientX、event.clientY鼠标相对于浏览器可视区域的X,Y坐标

初中高级工程师的区别?

我们知道程序员分 初级,中级, 高级, 这个概念, 并不是以工作年限作为分类依据的。 也就是说, 级别和你工作多少年没有必然的联系。一个初级工程师可能工作很多年依然是初级工程师, 也有的工程师, 工作短短两三年, 就跻身高级工程师的行列。

互联网、局域网、万维网三者区别?

互联网是指多台设备(如计算机、手机等)通过特定通信协议(TCP/IP、IPX/SPX、NetBIOS、NetBEUI、Apple Talk)组成的网络。一般可分为以下三种:局域网LAN(Local Area Network):一般不大于10公里,而且通常只使用一种传输介质

js中.和[]的区别

在js中,对象属于是键值对的集合,在上面这个代码中,name就属于是key,而‘残梦‘就是value。总之一句话: []更强大,.就是用起来更加习惯一些,一开始用[]的时候总是会当成数组,需要注意一下

CSS中zoom和scale的差异

zoom和scale这两个东西都是用于对元素的缩放,但两者除了兼容性之外还有一些不同的地方。zoom缩放会将元素保持在左上角,而scale默认是中间位置,可以通过transform-origin来设置。

*.min.js跟*.js的区别

js是JavaScript 源码文件, .min.js是压缩版的js文件。减小体积 .min.js文件经过压缩,相对编译前的js文件体积较小,传输效率快。防止窥视和窃取源代码

package.json中^和~的区别

webpack 项目的package.json 文件列出了项目所依赖的插件和库,同时也给出了对应的版本说明,但是在版本说明前面还有个符号:‘^‘(插入符号)和‘~‘(波浪符号),总结了下他们之间的区别:

PTN与SDH的区别?

SDH是基于TDM技术,主要用于传输语音,此外采用GFP封装来传输IP包,物理介质为光纤。PTN是采用DWDM技术,主要用于传输IP包、以太网帧,此外采用MPLS-TP技术来实现PWE3伪线

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!