zoukankan      html  css  js  c++  java
  • 在Java中,JDK,JRE和JVM之间的差异

    [
  •   Java 基础语法

    JAVA开发工具包

    Java Development Kit(JDK)是用于开发Java应用程序和applet的软件开发环境。它包括Java开发中所需的Java运行时环境(JRE),解释器/加载器(Java),编译器(javac),存档器(jar),文档生成器(Javadoc)以及其他工具。

    JAVA运行时环境

    JRE代表“Java运行时环境”,也可以写成“Java RTE”。Java运行时环境提供了执行Java应用程序的最低要求; 它由Java虚拟机(JVM),核心类和支持文件组成。

    JAVA虚拟机

    它是:

    • 一个规范已指定Java虚拟机的工作。但实现提供者是独立的选择算法。其实施由Sun和其他公司提供。
    • 一个实现是符合JVM规范要求的计算机程序
    • 运行时实例每当在命令提示符下编写java命令来运行java类时,都会创建一个JVM实例。

    JDK,JRE和JVM之间的差异

    要理解这三者之间的差异,让我们考虑下面的图表。
    在Java中,JDK,JRE和JVM之间的差异

    • JDK - Java Development Kit(简称JDK)是Kit,它提供了开发和执行(运行) Java程序的环境。JDK是一个包含两件事情的工具包(或包)
        1. 开发工具(提供开发您的Java程序的环境)
        2. JRE(执行你的java程序)。

      注意: JDK仅由Java开发人员使用。

    • JRE - Java Runtime Environment(简称JRE)是一种安装软件包,它提供的环境只能在您的机器上运行(不开发) java程序(或应用程序)。JRE仅供希望运行Java程序的用户使用,即最终用户。
    • JVM - Java虚拟机(JVM)是​​JDK和JRE的一个非常重要的部分,因为它包含在内部或内置于其中。无论您使用JRE或JDK运行的Java程序进入JVM,JVM都负责逐行执行java程序,因此它也被称为解释程序。

    JRE和JDK如何工作?

    JRE由什么组成?
    JRE由以下组件组成:

    • 部署技术,包括部署,Java Web Start和Java Plug-in。
    • 用户界面工具包,包括Abstract Window Toolkit(AWT),Swing,Java 2D,辅助功能,图像I / O,打印服务,声音,拖放(DnD)和输入法。
    • 集成库包括接口定义语言(IDL),Java数据库连接(JDBC),Java命名和目录接口(JNDI),远程方法调用(RMI),通过Internet Inter-Orb协议的远程方法调用(RMI-IIOP)和脚本。
    • 其他基础库,包括国际支持,输入/输出(I / O),扩展机制,Bean,Java管理扩展(JMX),Java本地接口(JNI),数学,网络,覆盖机制,安全性,序列化和XML处理(XML JAXP)。
    • Lang和util基础库,包括lang和util,管理,版本控制,zip,工具,反射,集合,并发实用程序,Java归档(JAR),日志记录,首选项API,参考对象和正则表达式。
    • Java虚拟机(JVM),包括Java HotSpot客户端和服务器虚拟机。

    JRE是如何工作的?

    为了理解JRE的工作原理,让我们考虑一个保存为Example.java的Java源文件。该文件被编译成一组存储在“ .class ”文件中的字节码。这里是“ Example.class ”。
    在Java中,JDK,JRE和JVM之间的差异

    下图描述了编译时所做的工作。

    以下操作在运行时发生。

    1. Class Loader Class Loader加载执行程序所需的所有必需类。它通过将本地文件系统的名称空间与通过网络导入的名称空间分开来提供安全性。这些文件可以从硬盘,网络或其他来源加载。
    2. 字节代码验证器 JVM通过字节代码验证程序放入代码,检查格式并检查非法代码。例如,非法代码是违反对象访问权限或违反指针实现的代码。 字节代码验证器确保代码符合JVM规范,并且不违反系统完整性。

    在Java中,JDK,JRE和JVM之间的差异

    3. Intrepreter

    在运行时,字节代码被解释器加载,检查并运行。口译员有以下两个功能:

        • 执行字节代码
        • 对底层硬件进行适当的调用

    这两个操作都可以显示为:
    在Java中,JDK,JRE和JVM之间的差异
    要理解JDK和JRE之间的交互,请考虑下图。
    在Java中,JDK,JRE和JVM之间的差异

    JVM如何工作?

    JVM在Java程序的运行时成为JRE的一个实例。它被广泛称为运行时解释器.JVM在很大程度上帮助从使用JDK的程序库中获取内部实现的抽象。
    有关JVM的详细工作,请单击 - > JVM的工作

  •   Java 基础语法
    ]
    转载请保留页面地址:https://www.breakyizhan.com/java/3719.html
  • 相关阅读:
    JavaWeb项目开发案例精粹-第6章报价管理系统-04Service层
    JavaWeb项目开发案例精粹-第6章报价管理系统-03Dao层
    JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件
    JavaWeb项目开发案例精粹-第6章报价管理系统-001需求分析及设计
    JavaWeb项目开发案例精粹-第4章博客网站系统-006View层
    JavaWeb项目开发案例精粹-第4章博客网站系统-005action层
    JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层
    JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层
    JavaWeb项目开发案例精粹-第4章博客网站系统-002辅助类及配置文件
    JavaWeb项目开发案例精粹-第4章博客网站系统-001设计
  • 原文地址:https://www.cnblogs.com/breakyizhan/p/13242713.html
Copyright © 2011-2022 走看看