1.是什么
在Java编程中,JVM(Java虚拟机)、JRE(Java运行时环境)和JDK(Java开发工具包)是三个不同的概念,它们之间有紧密的联系,但各自承担不同的角色和功能。
·下面的例子中扮演的角色可能相同但是作用不同,注意区分!!!
JVM(Java Virtual Machine)
定义:JVM是Java程序的运行环境,负责将Java字节码(.class文件)转换成平台相关的机器码(如Windows、Linux或macOS等系统的机器语言),使得Java程序能够在不同的操作系统上运行而无需修改。
例子:想象你写了一本“烹饪书”(Java程序),这本书上的食谱(Java代码)是用一种通用语言写的,任何厨师(JVM)都能看懂并按照步骤操作。但是,不同的厨师(不同操作系统的JVM)可能需要使用不同的厨房设备(机器语言)来准备食材。JVM就充当了这个翻译的角色,确保无论在哪个厨房(操作系统),都能按照食谱(Java代码)做出相同的菜肴(程序功能)。
JRE(Java Runtime Environment,Java运行环境)
定义:JRE包含了运行Java程序所必需的所有组件,包括JVM、Java平台核心类库(Java API)以及支持文件(如配置文件和启动器等)。简而言之,JRE是运行Java程序的完整环境。
例子:如果你想要在家中举办一个晚宴(运行Java程序),你需要一个完整的厨房环境(JRE)。这个厨房包括了烤箱(JVM,用于执行烹饪操作)、烹饪用具(Java平台核心类库,提供基础的烹饪功能,如切割、加热等)、以及食谱和调料(支持文件)。
JDK(Java Development Kit,Java开发工具包)
定义:JDK是Java程序开发者的工具箱,它包含了JRE以及用于开发Java应用程序的所有工具,如编译器(javac)、调试器(jdb)和其他用于创建和测试Java程序的工具。
例子:作为一位厨师(Java开发者),你不仅需要一个厨房(JRE)来准备晚宴(运行Java程序),你还需要一个厨房工作台(JDK),上面摆放着各种烹饪工具(编译器、调试器等),这些工具能帮助你设计新食谱(编写Java代码),测试食材(调试程序),以及将食材变成美味佳肴(编译Java代码并运行)。
总结:
- JVM 是Java程序运行的核心,它负责将Java字节码转换为可以在任何操作系统上执行的机器码。
- JRE 提供了运行Java程序所需的一切,包括JVM和Java类库。
- JDK 包含了JRE以及开发Java程序所需的工具,是Java开发者的必备工具箱。
JDK=JRE+java开发工具(javac.exe、java.exe、javadoc.exe....)
JRE=JVM+Java核心类库
这三者之间的关系可以形象地理解为:JVM是引擎,JRE是车辆,而JDK是包含车辆和工具的工作坊。在开发阶段,你需要JDK;⽽在部署和运⾏阶段,你只需要JRE。
参考图片:
好啦,今天的干货就到这啦~ 有什么建议或疑问欢迎到评论区留言!