JVM、JRE和JDK是Java生态系统的三个核心组件,它们的关系如下:

1. JVM(Java Virtual Machine)

  • 定义:JVM是运行Java字节码的虚拟计算机,负责将字节码翻译成机器码并执行。
  • 作用:实现“一次编写,到处运行”的跨平台特性,屏蔽不同操作系统的差异。
  • 地位:是Java程序运行的基础,所有Java程序都在JVM上执行。

2. JRE(Java Runtime Environment)

  • 定义:JRE是运行Java程序的最小环境,包含JVM、核心类库(如java.langjava.util等)及其他支持文件。
  • 作用:为Java程序提供运行时所需的资源。
  • 包含关系:JRE = JVM + 运行类库。

3. JDK(Java Development Kit)

  • 定义:JDK是Java开发工具包,是程序员开发Java程序的核心工具。
  • 作用:包含编译器(javac)、调试器(jdb)、文档工具(javadoc)等开发工具。
  • 包含关系:JDK = JRE + 开发工具。

三者关系总结

  • JVM是Java程序的运行核心,负责执行字节码。
  • JRE是运行Java程序的环境,包含JVM和类库。
  • JDK是开发Java程序的工具集,包含JRE和开发工具。

简单理解

  • 若只需运行Java程序(如使用java -version调用版本信息),安装JRE即可(java 是 JRE 的核心执行命令)。
  • 若要开发Java程序(编写.java文件并编译),则需安装JDK。
  • JDK包含JRE,JRE包含JVM,形成层层嵌套的关系。

学习笔记:JVM、JRE和JDK的关系的更多相关文章

  1. Java虚拟机学习笔记——JVM垃圾回收机制

    Java虚拟机学习笔记——JVM垃圾回收机制 Java垃圾回收基于虚拟机的自动内存管理机制,我们不需要为每一个对象进行释放内存,不容易发生内存泄漏和内存溢出问题. 但是自动内存管理机制不是万能药,我们 ...

  2. JVM学习笔记-JVM模型

    JVM学习笔记 == 标签(空格分隔): jvm 学习笔记全部来自于<深入理解java虚拟机>总结 jvm内存示意图 虚拟机栈(Java Virtual Machine Stacks): ...

  3. Java学习 1.2——简述JVM,JRE,JDK的关系

    在上一节中,我们了解了JVM相关的知识,有兴趣的话可以先去看一下: Java学习 1.1——(JVM介绍)Java为什么能够跨平台? 这个篇主要分享的是JRE,JDK,JVM三者的区别,简言之: JD ...

  4. 简述JVM、JRE、JDK的关系及作用

    1.JVM:java虚拟机 . 作用:保证java语言跨平台. 2.JRE:java运行环境 jre=java虚拟机+核心类库. 作用:java程序的运行环境. 3.JDK :java开发工具集.JD ...

  5. JVM, JRE 和JDK

    JVM -- java virtual machine A Java virtual machine (JVM) is a process virtual machine that can execu ...

  6. Java 学习笔记 ------第二章 从JDK到IDE

    本章学习目标: 了解与设定PATH 了解与指定CLASSPATH 了解与指定SOURCEPATH 使用package与import管理类别 初步认识JDK与IDE的对应关系 一.第一个Java程序 工 ...

  7. 一个bug重温对JRE和JDK的关系思考

    前几天做一个springboot项目时,导入的JAVA版本是17,然后后面想更贴近下企业中使用的JDK版本就改成了JDK 1,8,然后就编译错误,bug如下 java: java.lang.Unsup ...

  8. 《Java程序性能优化》学习笔记 JVM和并发优化

    第四章 并行程序优化 1.非阻塞同步避免了基于锁的同步的缺陷,无锁算法没有锁竞争带来的系统开销,也没有线程间频繁调度带来的开销.CAS算法:包含3个参数CAS(v,e,n).V表示要更新的变量,E表示 ...

  9. 【学习笔记】【C语言】关系运算符

    1. 条件判断 默认情况下,我们在程序中写的每一句正确代码都会被执行.但很多时候,我们想在某个条件成立的情况下才执行某一段代码 这种情况的话可以使用条件语句来完成,但是我们暂时不学习条件语句,先来看一 ...

  10. java学习笔记1——window7下JDK环境变量配置图解

    1. 首先下载Java安装工具包   http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...

随机推荐

  1. 基于CentOS Stream 8的物联网数据采集与展示方案

    系统架构全景图 图表 一.系统平台优化(CentOS Stream 8) 1. 系统基础配置 bash # 1. 系统更新与加固 sudo dnf update -y sudo dnf install ...

  2. 我整理了 10 条 AI 聊天应用的需求

    我整理了 10 条 AI 聊天应用的需求,看看有没有你也需要的. 1. 全局检索(Global Search) 上次那个绝妙的点子,现在只记得它很绝妙了 作为一位大语言模型的深度用户,我的聊天记录已累 ...

  3. 你应该懂的AI大模型(四)之 LangChain

    这篇文章里面会有一些 python 代码,能看懂就行,可能会有语法错误大家当伪代码看吧, AI 应用开发也不会去敲这些代码(甚至整个过程都不太需要敲代码),文章中的这些代码只是为了更好的理解这些组件, ...

  4. 袋鼠云思枢:数驹DTengine,助力企业构建高效的流批一体数据湖计算平台

    7月28日,以"数智进化,现在即未来"为主题的袋鼠云2022产品发布会于线上正式开幕.发布会上,袋鼠云宣布将集团进行全新升级:从"数字化基础设施供应商",升级为 ...

  5. 谷歌浏览器 与 C# 4种嵌入浏览器 从 兼容性、性能、高级特性 方面的表现比对

    ​ CS架构 Web具有非常强大且友好的开发生态,在CS架构的窗口程序中嵌入浏览器,有哪些好处呢? 1,能够极大丰富程序的表现形式 2,能够充分地利用web的跨平台特性 3,能够使用web更现代更丰富 ...

  6. Nginx 本地代理转发请求 502 Bad Gateway

    问题 在使用 yum 安装 nginx 后可能会出现配置完成后却无法访问的问题,查看 audit.log 会发现类似于以下的错误信息 原因 出现此问题的原因是 SELinux 基于最小权限原则默认拦截 ...

  7. 都说了布尔类型的变量不要加 is 前缀,非要加,这不是坑我了嘛

    开心一刻 今天心情不好,给哥们发语音 我:哥们,晚上出来喝酒聊天吧 哥们:咋啦,心情不好? 我:嗯,刚刚在公交车上看见前女友了 哥们:然后呢? 我:给她让座时,发现她怀孕了... 哥们:所以难受了? ...

  8. 利用POI插件导入excel 读取合并行数据(上)

    图为要导入的excel格式 分析一下: 前一部分数据是读取 合并行 存入一张 "会见" 表 ,后面蓝色的 非合并行 存入 "会见人信息" 表. 先说后台方法,( ...

  9. java set TreeSet详解

    TreeSet 是sortedSet的唯一实现类,正如SortedSet名字暗示,TreeSet可以让集合元素处在排好序的状态. 与HashSet相比,TreeSet还额外提供了以下的方法(列出来,混 ...

  10. Go 重构案例分享:订单创建逻辑重构

    背景:从 PHP (Laravel) 到 Go 的模式迁移 •原 PHP (Laravel) 实现思路:核心模式: "行为管道" (Behavior Pipeline).如何工作: ...