• JVM JRE和JDK的区别和联系


    转载:https://zhuanlan.zhihu.com/p/48487801

    ps:Java11 以后没有单独的jre

    一、三者的关系

    首先 三者之间存在包含关系

    JVM + 核心类库 = JRE

    JRE + java开发工具(javac.exe/jar.exe) = JDK

    二、JVM

    Java Virtual Machine 即Java虚拟机

    我们知道Java语言有一个独特的优点就是可以跨平台

    像其它语言,比如C,我们要针对不同操作系统windos,mac……各出一套应用程序

    而Java则可以做到一个软件在任何的操作系统中都能执行,这就是JVM的功劳

    如下图

    本来我们编写的Java代码计算机还是不认识的,但是我们在每一个操作系统上都会配置一个与之相对应的JVM,会帮我们把我们的Java代码翻译成对应操作系统可以识别的内容。

    JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。

    所以说我们在第一次写Java程序时都要先把JVM给装好。

    三、JRE

    Java Runtime Environment 即Java运行环境

    JVM + 核心类库 = JRE

    刚才不是说只需要装JVM吗?那这个JRE是个什么鬼东西?

    是因为只有JVM不能运行,它还需要核心类库,才能保证Java运行

    由于JRE包含JVM 因此我们只要直接安装JRE 就顺便把JVM安装了

    四、JDK

    Java Development Kit 即Java开发工具包

    JRE + java开发工具(javac.exe/jar.exe) = JDK

    前面不是说安装了JRE以后,Java程序就可以运行了吗?那为啥子还要安装这个JDK?

    这是因为我们是开发人员,我们是写软件的,软件光能运行不行啊,得给我们一个地方让我们来写代码吧?所以就需要java开发工具给我们腾出一个地儿来,好让我们coding

    由于JDK包含JRE 因此我们只需要安装JDK就都有了

  • 相关阅读:
    洛谷 P1990 覆盖墙壁
    洛谷 P1033 自由落体
    洛谷 P2049 魔术棋子
    洛谷 P2183 巧克力
    poj_1743_Musical Theme(后缀数组)
    Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset
    Codeforces Round #367 (Div. 2) C. Hard problem
    hdu_5831_Rikka with Parenthesis II(模拟)
    hdu_5826_physics(物理题)
    hdu_5821_Ball(贪心)
  • 原文地址:https://www.cnblogs.com/flypig666/p/13975047.html
Copyright © 2020-2023  润新知