jdk,jre和JVM的区别关系初步理解

本文介绍了JDK、JRE和JVM之间的区别和关系。JDK是Java开发工具包,包含开发环境和运行环境;JRE是Java运行环境,主要用于执行Java程序,其中包含了JVM;JVM作为JRE的一部分,负责解释执行Java字节码,实现跨平台性。JDK是JRE的超集,提供编译、打包等工具。

JDK(Java Development Kit)是面向JAVA开发人员使用的SDK,它提供了Java的开发环境和运行环境。
·JRE(Java Runtime Enviroment)是指Java的运行环境,是面向Java程序的使用者,而不是开发者。

 

java不同于C和C++的编译执行。

java是解释执行,也就是java编译后不是CPU可以直接执行的机器码。而需要一个东西再翻译一下,好处是提高了跨平台性,坏处是牺牲了速度,实话,CPU好的时候没感觉,CPU不好的话第一次打开的时候简直要等心碎~~当然基本也就是第一次打开的时候慢。所以这个东西就是JAVA虚拟机。你可以认为只要是要执行JAVA程序就必须要JAVA虚拟机,也叫做JVM。但是只有JVM还不够。还需要其他类加载器。校验器,类库什么的。这些东西的集合就是JRE,java运行时环境。jvm是jre的元素。JDK是Java SE Development Kit 就是Java 标准版的开发包。也就是包括Java 的编译器啊 打包工具啊,注释工具啊啥的这些东西。jre又是JDK的一个子集

 

我的理解是,jdk是开发java用的,jre是运行java用的,jvm是属于jre的

### JDKJREJVM区别与联系 #### **JVM(Java Virtual Machine)** JVM 是 Java 虚拟机,是运行 Java 程序的核心组件。它负责解释执行 Java 字节码,并提供运行 Java 程序所需的环境。JVM 本身并不包含完整的运行支持,还需要调用核心类库(lib)来完成字节码的解释执行。这些类库包含了 Java 标准 API,例如 `java.lang`、`java.util` 等[^1]。 JVM 的设计使得 Java 程序能够在不同操作系统上运行,从而实现了 Java 的“一次编写,到处运行”的跨平台特性[^5]。 #### **JRE(Java Runtime Environment)** JRE 是 Java 程序的运行环境,包含 JVM 核心类库(lib)。它为 Java 程序提供了一个独立于平台的运行环境,确保 Java 应用程序能够在不同平台上以相同的方式运行[^3]。JRE 适合那些只需要运行 Java 程序的用户,而不涉及开发工作。例如,普通用户安装 JRE 即可运行 Java 编写的桌面应用或浏览器插件。 JRE 的结构可以理解JVM 加上核心类库,即 `JRE = JVM + 核心类库`。在 JRE 的安装目录中,`bin` 文件夹包含 JVM 的可执行文件(如 `java.exe`),而 `lib` 文件夹存放运行 Java 程序所需的类库[^4]。 #### **JDK(Java Development Kit)** JDK 是 Java 开发工具包,是 Java 开发者的核心工具集。它不仅包含 JRE 的全部功能,还增加了编译器(`javac`)、调试工具(`jdb`)、文档生成工具(`javadoc`)等开发所需的组件。因此,JDK 的结构可以表示为 `JDK = JRE + 开发工具`。 JDK 是开发 Java 程序的必备工具。它允许开发者编写 Java 源代码(`.java` 文件),并将其编译为字节码(`.class` 文件),然后在 JVM 上运行。对于普通用户来说,如果只需要运行 Java 程序,安装 JRE 即可;而开发人员则必须安装 JDK 才能进行编译调试工作[^2]。 #### **三者之间的关系** JDKJREJVM 之间是一层嵌套的关系,具体如下: - **JVM** 是最底层的核心组件,负责执行字节码。 - **JRE** 包含 JVM 核心类库,提供了运行 Java 程序所需的完整环境。 - **JDK** 包含 JRE 开发工具,适用于开发运行 Java 程序。 这种结构可以用以下公式表示: ``` JDK = JRE + 开发工具 JRE = JVM + 核心类库 ``` #### **实际应用场景** 1. **运行 Java 程序**:用户只需安装 JRE 即可运行已编译的 Java 程序。 2. **开发 Java 程序**:开发者需要安装 JDK,以便使用编译器(`javac`)调试工具(`jdb`)进行开发。 3. **跨平台运行**:由于 JVM 的存在,Java 程序可以在不同操作系统上运行,而无需修改源代码。 #### **示例代码** 以下是一个简单的 Java 程序示例,展示了如何编写运行 Java 程序: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Java!"); } } ``` 1. **编写代码**:使用文本编辑器或 IDE(如 Eclipse)编写 `HelloWorld.java` 文件。 2. **编译代码**:通过 JDK 提供的 `javac` 命令编译代码: ``` javac HelloWorld.java ``` 这将生成 `HelloWorld.class` 文件。 3. **运行程序**:使用 JREJDK 提供的 `java` 命令运行程序: ``` java HelloWorld ``` ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值