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日

相关推荐

  • 如何应对项目延误和超预算

    应对项目延误和超预算的策略包括:一、识别原因;二、评估影响;三、沟通及时;四、修订项目计划;五、加强项目监控;六、风险管理;七、优化资源配置;八、成本控制;九、变更管理;十、技术优化;十一、增强团队协作;十二、审计和复盘。项目延误和超预算是项目管理中常见的问题,这些问题不仅影响项目的交付和质量,还可能影响公司的财务状况和市场声誉。

    2023年11月11日
    25300
  • pid用哪些方法整定参数

    pid整定参数可以使用以下方法:1、z-n法;2、衰减震荡法;3、响应曲线法;4、IMC-PID。z-n法分为两步: 构建闭环控制回路,确定稳定极限。 然后根据公式计算控制器参数。 稳定极限是由P元件决定的。当出现稳态振荡时就达到了这个极限。 1、z-n法 z-n法分为两步: 构建闭环控制回路,确定…

    2023年1月10日
    1.6K00
  • 哪些数据符合arma模型

    符合arma模型的数据:1、货币供应量;2、国民生产总值;3、国内生产总值;4、总消费;5、社会商品零售总额;6、居民消费价格指数;7、正弦信号频率。其中,货币供应量是指,某一时点流通中的现金量和存款量之和。 1、货币供应量 货币供应量(money supply;supply of money)亦称…

    2023年1月6日
    78300
  • Python的list[int]是什么意思

    list[int]表示一种特殊的list,它只能包含整数类型的元素。在Python中,list是一种非常重要的数据类型。它是一种可变序列类型,可以包含任意数量的元素,这些元素可以是不同类型的数据,包括整数、浮点数、字符串、元组、列表等等。 在Python中,list是一种非常重要的数据类型。它是一种…

    2023年2月28日
    1.7K00
  • String s;和String s=null;区别

    区别是:String s ;该语句表示只是声明了一个引用变量,但是并没有初始化引用,所以对变量s的任何操作(除了初始化赋值外) 都将引发异常。String s=null; 表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象。 String s ;该语句表示…

    2023年2月12日
    56300
  • oa签报是什么意思

    OA签报指的是在办公自动化(OA)系统中进行的签批报告流程。1、在线填写报告 2、上级审批, 其中特别需要强调的是在线填写报告这一环节,它让文档创建、分发与审阅的过程数字化,简化了传统纸质报告的繁琐流程,使得文档处理更加高效和环保。 一、定义与功能 OA签报是指在企业或组织内部,员工通过办公自动化系…

    2024年1月11日
    21700
  • 云原生应用的API管理如何实现

    云原生应用的API管理的实现步骤包括API定义和设计、API开发和管理、API测试和文档化、API网关、API生命周期管理、API目录和管理平台、API安全性和合规性等。详细介绍:1、API定义和设计,在云原生应用的开发过程中,API的定义和设计是非常重要的一步,良好的API设计可以提高应用程序的可维护性、可扩展性和可重用性;2、API开发和管理,在确定了API的设计后,可以开始进行API的开发和管理等等。

    2023年10月27日
    26900
  • 事项任务软件有哪些

    事项任务软件有:一、PingCode;二、Worktile;三、Taiga;四、OmniPlan;五、MeisterTask;六、Jira。PingCode的优势在于它是一款覆盖研发全生命周期的项目管理系统,被广泛用于需求收集、需求管理、需求优先级、产品路线图、项目管理、测试管理、缺陷追踪、文档管理…

    2023年4月24日
    19600
  • 并发和异步从概念上理解有什么区别

    区别是:并发在操作系统中指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。异步是一种通讯方式,对设备需求简单。我们的PC机提供的标准通信接口都是异步的。 并发 并发,在操作系统中,是指一个时间段中有几个程序都处于…

    2023年2月13日
    58000
  • 办公自动化功能有哪些

    标题:办公自动化功能的多样性和实用性 办公自动化能催化业务效率,降低管理成本,提升工作流程透明度。其功能主要涵盖:1、文档管理、2、时间和任务管理、3、电子邮件服务、4、即时通讯、5、数据分析和报告、6、在线会议与协作、7、项目管理、8、资源规划、9、自动化工作流设定、10、移动办公支持。特别是数据…

    2024年1月17日
    9300

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部