JDK、JRE、JVM 三者什么关系

我们利用JDK写了自己的JAVA代码程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

一、JDK,JRE,JVM是什么

JDK(java development kit):编译环境。Java 开发工具包。JDK 是整个 Java 开发的核心,它集成了 JRE 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。JDK包括了Java运行环境JRE(Java Runtime Envirnment)、一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

通常在安装好JDK之后,JRE也会自动安装好

JRE (java runtime environment):运行环境。负责装载用户自定义的类(分为从本地装载和从网络装载两种)和java API类。

JVM :平台软件,负责将字节码解释成机器码并提交操作系统执行。换句话说,JVM就是Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行。jvm调用解释所需的类库lib,而jre包含lib类库。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行(跨平台性:不同的浏览器安装不同的java虚拟机,jvm将字节码与对应操作系统相映射,达到java程序的跨平台性)。

简单来说三者的关系是:JDK>JRE>JVM。

如果想要 运行 一个开发好的 Java 程序,计算机中只需要安装 JRE 即可。

二、JDK、JRE、JVM关系

JDK = JRE + 开发工具集(例如 Javac 编译工具等)

JRE = JVM + Java SE 标准类库

延伸阅读

联系与区别:

1.我们利用JDK写了自己的JAVA代码程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

2.JDK和JRE区别:在bin文件夹下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(只需要运行的人)是不需要的。JDK还有jar.exe, javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。jdk是给开发人员使用的,jre和jvm是给普通用户使用。

3.JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持(rt.jar)

文章标题:JDK、JRE、JVM 三者什么关系,发布者:E.Z,转载请注明出处:https://worktile.com/kb/p/53778

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
E.ZE.Z认证作者
上一篇 2023年6月3日
下一篇 2023年6月3日

相关推荐

  • 为什么devops这么难

    ### 为何DevOps之路充满挑战 开门见山地阐发DevOps面对的主要挑战:DevOps,一个融合了开发(Development)与运维(Operations)的实践,旨在改进和加速软件交付过程。然而,它的推行之路并非坦途,主要因为 1、文化转变难度大、2、自动化程度要求高、3、需要跨部门的紧密…

    2024年3月26日
    6400
  • 编程030代表什么意思

    编程030通常代表一个错误代码,这个代码可能是由于用户输入错误或程序内部问题而生成的。在详细描述过程中,我们可以考虑这个错误代码是由编译器、解释器或运行时环境产生的。当编程语言或软件工具试图执行一个任务时,如果遇到无法理解或无法按预期工作的指令,就可能显示类似的错误代码。这类错误通常需要开发人员通过…

    2024年4月27日
    600
  • 信息化编程自主招生考什么

    在探讨信息化编程自主招生考试的内容时,我们可以将主要的考查点概括为1、基础编程能力、2、计算机理论知识、3、逻辑思维与算法设计与4、项目实操经验。 其中,基础编程能力尤为关键,它不仅涉及到编程语言的掌握程度,例如熟练使用Python、Java、C++等,还包括对基本数据结构和算法的理解和应用。考生需…

    2024年4月27日
    500
  • c语言编程实现不涉及什么

    C语言编程实现过程中通常要避开1、无关系统特定功能、2、防止内存泄漏、3、避免使用未初始化变量、4、防范缓冲区溢出、5、保持代码的可移植性。在深入理解第一点,即避开无关系统特定功能时,重要性在于C语言自身是一种功能强大但比较低级的编程语言。这意味着它提供了贴近硬件层面的操作能力,往往可以访问系统级的…

    2024年4月27日
    700
  • 现在编程用什么版本好

    目前,选择编程语言的版本取决于几个重要因素:1、安全性、2、功能性、3、兼容性以及4、社区支持。例如,许多开发者偏向于使用Python的最新稳定版本因为它提供了最新的功能和安全性更新,同时也得到了广泛的社区支持。不同的项目和需求可能会导致不同的版本选择。 例如,如果你开发的是一个需要长期维护并且对安…

    2024年4月27日
    900
  • 如何管理项目代码质量工作

    代码质量是开发项目成功的关键因素之一,决定了软件产品的稳定性和可维护性。管理项目代码质量的策略包括采用代码审查、单元测试、持续集成、遵循编码标准和规范、使用静态代码分析工具、进行定期重构以及培养良好的编程习惯等。在这些策略中,采用代码审查是尤其重要的步骤,因为它允许团队成员相互检查代码以发现潜在的错…

    2024年4月10日
    7100
  • 编程是什么专业学制多少年

    编程是计算机科学与技术的一个领域,其专业学制通常为4年。在这个领域,学生们将学习使用不同的编程语言来创建软件,解决问题和实现自动化。编程不仅是关于写代码,还涉及算法设计、系统分析以及软件工程的概念。在这个专业中,理论与实践相结合,旨在培养学生的逻辑思维、问题分析和解决能力。学生们通过实际编程项目来深…

    2024年4月27日
    600
  • 核桃编程的课程是什么

    核桃编程的课程主要包括3个方面:1、编程基础与逻辑思维培养、2、项目实践与创意编程、3、竞赛培训与技能提升。尤其在编程基础与逻辑思维培养方面,课程设计注重从儿童和青少年的认知发展出发,通过有趣的游戏和实际问题解决,引导学生掌握编程语言基础,如Scratch、Python等,同时锻炼他们的逻辑思维能力…

    2024年4月27日
    1300
  • 数学编程需要什么学历

    摘要开头段落直接回答标题所提问题 数学编程通常不强制要求特定学历,但至少需要一定的数学和编程知识背景。例如本科层次的学历很适合从事这一领域的工作,这是因为它提供了基础教育来理解数学的原则和编程的技术。数学编程需要具备扎实的数学理论基础,熟悉至少一种编程语言以及解决问题的能力。 对于从事数学编程的个人…

    2024年4月27日
    900
  • 计算机中的挂载是什么意思

    在计算机科学与技术领域中,挂载(Mounting)是一种使文件系统准备就绪以供用户或操作系统进行访问的过程。挂载是计算机文件系统中一种至关重要的操作,通常用于连接两个文件系统。简言之,挂载一个文件系统意味着使该文件系统进入一个已经挂载的文件系统,从而可以通过路径访问。在技术上,挂载的过程涉及多个层次…

    2023年7月13日
    2.0K00

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部