当前位置: 首页 > news >正文

3.JDK+JRE组件构成与协作

目录

  • 引言
  • 一、藏在背后默默干活的 “大神”
  • 二、JDK与JRE——核心组件和它们的本事
    • 2.1 JRE(Java Runtime Environment):程序的 “动力引擎”
    • 2.2 JDK(Java Development Kit):开发者的 “创意工坊”
  • 三、为啥 Java 离了 JDK/JRE 就不行?
  • 四、如何理解JDK与JRE的协作流程?
  • 五、学会这玩意儿能解决啥实际问题呢?
  • 总结

引言

咱今儿个就一头扎进 Java 世界,好好唠唠 “JDK/JRE 组件构成与协作”。这可算得上是 Java 程序的 “根基” 啦,打个比方吧,就好比汽车的 “发动机” 和 “驾驶舱”,那作用可大了去了!JRE 能让程序顺利跑起来,JDK 呢,则能让开发者把程序给造出来。
在这里插入图片描述

一、藏在背后默默干活的 “大神”

其实啊,JDK 和 JRE 在咱平常生活的好多场景里都藏着呢,只不过咱可能没咋注意。

  • 手机APP:就说咱手机里那些 APP 吧,像刷短视频用的抖音,它后台推荐算法说不定就是用 Java 编写的。开发团队得靠 JDK 来写代码,写完之后,这个算法就在服务器的 JRE 里一直运行着,实时给咱计算推送喜欢看的内容,可方便了。

  • 在线教育平台:还有在线教育平台,咱学习看直播课的时候,后台统计有多少人同时在线的那个 “并发人数统计” 功能,靠的就是 Java 程序在 JRE 里高效地处理数据呢。

  • 智能设备:再瞧瞧智能家居这一块,就拿小米网关这种智能家居控制中心来说,它底层设备通信逻辑可能就是用 Java 实现的,运行的时候得依靠 JRE 的轻量化版本。

咱用外卖 APP 点餐的时候,从选菜品、算价格,再到通知骑手,这一连串操作背后,全是 Java 程序在 JRE 里 “呼呼” 地快速运转呢。而这些程序最初都是开发者用 JDK 精心设计编写出来的。

二、JDK与JRE——核心组件和它们的本事

2.1 JRE(Java Runtime Environment):程序的 “动力引擎”

Java 运行时环境,这可是 Java 程序运行的 “地盘”,它有两个关键部分:

  • JVM(Java虚拟机):这就像是 Java 程序的 “翻译官”,负责把统一的 Java 代码,变成不同设备能明白的 “话”。

  • 核心类库:这好比是一个 “预制工具箱”,里面都是现成的功能代码,像处理时间、显示文字、网络连接这些功能都有。

有了它们,Java 程序不管在电脑、手机还是服务器这些设备上,都能稳稳地运行。

2.2 JDK(Java Development Kit):开发者的 “创意工坊”

Java 开发工具包,那可是程序员手里的 “宝贝工具集”。它不仅包含完整的 JRE,还额外带了不少好东西:

  • 编译器:能把开发者写的那些 “人能看懂的代码”,转换成 JVM 能识别的 “字节码”。

  • 文档工具:可以自动生成代码的使用说明书,方便得很。

  • 调试工具:专门帮开发者揪出代码里的错误。

有了这些,开发者就能从无到有地去设计、编写、测试 Java 程序啦。
在这里插入图片描述

这么总结一下哈:

  • JDK = JRE + 开发工具(让程序“能被写出来”)。

  • JRE = JVM + 类库(让程序“能跑”);

三、为啥 Java 离了 JDK/JRE 就不行?

1. 没了 JRE,程序就像没发动机的汽车,跑不起来

跨平台运行:不同的设备,像 Windows 电脑和安卓手机,它们 “说话” 的方式不一样。JRE 里的 JVM 就能把 Java 代码统一翻译一下,这样就能实现 “一次编写,到处运行” 啦。给你举个例子,用 Java 写的天气预报程序,咱不用专门为手机和电脑分别开发,用户只要在对应的设备上安装好 JRE,就能用这个程序查看天气啦。

2. 没了 JDK,开发者就像没工具的建筑师,啥都干不了

标准化开发:JDK 提供了统一的工具和规则,全球的开发者都按照这个标准来写代码,这样就能避免大家各写各的,到最后代码都不兼容的问题。比如说有两个团队一起开发同一个电商网站,都用 JDK 的编译器来编译代码,这样双方的代码就能很顺利地合到一块儿,没啥问题。

这里面还有不少核心优势呢:

  • 简化开发:JDK 的工具能帮开发者少写好多重复的代码,效率大大提高。

  • 稳定运行:JRE 的类库都是经过严格测试的,这样程序出错的可能性就小多了。

  • 灵活扩展:不管是手机 APP 这种小应用,还是大型服务器那种大项目,JDK/JRE 都能满足不同规模的需求。

四、如何理解JDK与JRE的协作流程?

咱来仔细琢磨琢磨从有个想法到程序能运行起来,这里面的门道。

【关键步骤:从 “想法冒头” 到 “程序撒欢跑” 】

  1. 开发者设计功能:心里先琢磨好要实现个啥功能。比如说打算做一个能自动计算平均分的程序。这时候不用急着写代码,先把功能想明白、理清楚就行。

  2. 用JDK“翻译”需求:接下来就靠 JDK 大显身手啦。开发者得借助 JDK 里的各种工具,把之前想好的功能需求转化成 “字节码”。这字节码就好比是一份 “全球通用的说明书”,不管啥设备,只要认得这 “说明书” 就行。

  3. JRE“执行”字节码:然后就轮到用户设备上的 JRE 上场干活啦。JRE 读取这个字节码,这里面 JVM 就开始发挥它的 “解读” 本事,就像认真看 “说明书” 一样。而类库呢,这时候就把 “计算平均分” 所需的现成功能拿出来用。

  4. 输出结果:最后结果就出来啦,用户能看到最终算好的平均分,比如说 85 分。在整个过程里,开发者压根不用操心用户用的是 Windows 系统的电脑,还是苹果的 Mac 电脑,反正都能行得通。

这么打个比方来理解哈:

  • JDK = 设计师的“绘图软件+尺子”(将想法变成“施工蓝图”);

  • JRE = 施工队的“挖掘机+工人”(按蓝图盖房子,无需知道蓝图如何画成)。

五、学会这玩意儿能解决啥实际问题呢?

案例1:解释“程序打不开”的原因

要是朋友给你发了个 Java 程序,你双击之后却弹出提示说 “无法运行”,这时候你心里就得有个底儿,大概率是他的电脑没安装 JRE。这就好比汽车没装发动机,程序自然启动不起来啦。这时候你就建议他安装对应的 JRE 版本,问题可能就解决了。

案例2:选择合适的“工具包”

要是你只是个普通用户,就想运行别人开发好的 Java 程序,比如股票分析软件啥的,那你只需要安装 JRE 就行。为啥呢?因为它比较轻量级,也不占啥空间,能满足咱运行程序的需求。

但要是你自己想写程序,像开发个小游戏啥的,那必须得安装 JDK。毕竟它里面除了包含 JRE,还有各种开发工具,没这些工具可没法开工。

案例3:理解“跨平台”的局限性

要是碰到一个 Java 程序只能在 Windows 系统上运行,这可能是开发者在开发的时候用了 JDK 里那些 “非跨平台” 的工具。比如说调用了 Windows 系统特有的功能。这时候你就得提醒开发者,“尽量用 JDK 的标准类库,可别太依赖特定系统的工具啦”。

总结

这么一看,JDK 和 JRE 在 Java 这个大家庭里,那可就是 “基石” 一般的存在。JDK 是开发者这个 “创造者” 手里的得力工具,JRE 是程序运行者所依赖的环境。它们俩相互配合,让 Java 程序开发起来轻松,运行起来也自由自在的。记住这个核心要点哈:JDK 负责生成程序,JRE 负责运行程序,JVM 负责实现跨平台。 这一套逻辑搞清楚了,对 Java 的理解又能更上一层楼啦!

http://www.lryc.cn/news/601828.html

相关文章:

  • LeetCode 刷题【16. 最接近的三数之和、17. 电话号码的字母组合】
  • 推荐系统学习
  • 电子电路设计学习
  • Oracle数据库常用语法详解
  • 逆向入门(43)程序逆向篇-tsrh-crackme
  • C++ auto 类型推导
  • Android MQTT 长连接最佳实践技术分享
  • 5.4 ASPICE适配过程中的实施改进
  • 机械学习初识--什么是机械学习--机械学习有什么重要算法
  • Red靶机攻略
  • 字符串是数据结构还是数据类型?
  • Day44 Java数组08 冒泡排序
  • python中的容器与自定义容器
  • Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真
  • 09_opencv_遍历操作图像像素
  • CIFAR100数据集实测-基于 AlexNet模型的压缩/Bagging/Boosting 探索
  • 人社部物联网安装调试员的实训平台
  • 深度学习(鱼书)day04--手写数字识别项目实战
  • 网络协议:计算机世界的“交通规则“与“社交礼仪“
  • java--WebSocket简单介绍
  • Flutter开发实战之性能优化与调试
  • 深入解析MIPI C-PHY (四)C-PHY物理层对应的上层协议的深度解析
  • Pytest 参数化进阶:掌握 parametrize 的多种用法
  • maven <dependencyManagement>标签的作用
  • AutoLabelImg:高效的数据自动化标注工具和下载
  • IndexedDB全面掌握:从入门到Odoo OWL框架实战
  • mac系统彻底删除mysql并重装
  • [AI8051U入门第十步]W5500-客户端
  • 全方位评测:11款主流指标平台优劣分析
  • FreeRTOS—队列集