JVM、JRE、JDK之间的关系

server/2024/9/22 19:41:51/

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

参考图片:

        好啦,今天的干货就到这啦~  有什么建议或疑问欢迎到评论区留言!

猜你感兴趣的方面:

#你还能区分逻辑运算符吗?快来瞧瞧...

#i++是什么???

#什么是强制类型转换?

#自动类型转换有那些细节???


http://www.ppmy.cn/server/114767.html

相关文章

社交媒体的未来:Facebook如何通过AI技术引领潮流

在数字化时代的浪潮中,社交媒体平台不断演变,以适应用户需求和技术发展的变化。作为全球领先的社交媒体平台,Facebook在这一进程中扮演了重要角色。尤其是人工智能(AI)技术的应用,正在深刻地改变Facebook的…

MySQL 锁

在MySQL中,锁机制是用于协调多个并发事务对同一资源的访问,确保数据的一致性和完整性。不同的锁类型和粒度适应不同的应用场景,通过合理运用锁机制,可以最大限度地提升数据库的并发性能和数据一致性。 一、MySQL中的锁分类 MySQ…

逻辑一键导入导出,解决企业多环境数据迁移的难题

在当今复杂多变的商业环境中,系统间的数据迁移、备份与共享成为了确保业务连续性和一致性的关键环节。随着企业规模的不断扩大和业务的日益复杂化,JVS逻辑引擎作为一款集高效、灵活、可扩展性于一身的决策支持系统,还通过其独特的导入导出功能…

自然语言处理系列六十一》分布式深度学习实战》TensorFlow深度学习框架

注:此文章内容均节选自充电了么创始人,CEO兼CTO陈敬雷老师的新书《自然语言处理原理与实战》(人工智能科学与技术丛书)【陈敬雷编著】【清华大学出版社】 文章目录 自然语言处理系列六十一分布式深度学习实战》TensorFlow深度学习…

OpenCV结构分析与形状描述符(14)拟合直线函数fitLine()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 拟合一条直线到2D或3D点集。 fitLine 函数通过最小化 ∑ i ρ ( r i ) \sum_i \rho(r_i) ∑i​ρ(ri​)来拟合一条直线到2D或3D点集&#xff0c…

【机器学习】梯度提升和随机森林的概念、两者在python中的实例以及梯度提升和随机森林的区别

引言 梯度提升(Gradient Boosting)是一种强大的机器学习技术,它通过迭代地训练决策树来最小化损失函数,以提高模型的预测性能 随机森林(Random Forest)是一种基于树的集成学习算法,它通过组合多…

如何用720VR全景摄影拍摄星空

1. 选择合适的地点和时间 远离光污染:找到一个远离城市灯光污染的地方,如乡村、山顶或专门的天文观测点。 天气条件:选择晴朗的夜晚,没有云层遮挡,空气质量良好。 月相选择:避免满月等亮光的时段&#xf…

20240910软考架构-------软考146-150答案解析

每日打卡题146-150答案 146、【2018年真题】 难度:一般 给定关系R(A,B,C,D,E)与S(A,B,C,F,G),那么与表达式等价的SQL语句如下:select (1) from R, S where (2) 。 (1)A.…