JVM、JRE、JDK的关系?
我们了解了JVM是什么,JVM就行相当于我们的操作系统,是负责来解释或翻译.class文件的,识别.class中的指令,从而调用操作系统中的指令。
我们了解到JVM是使Java程序能够运行并且能够使之跨平台运行的核心。但是JVM自己是干不了这一切的,就像“有了开发人员,为什么需要产品经理,为什么需要测试人员,为什么需要运维人员”一样。
我们就好比是开发人员,但是你开发之前和之后的呢?什么你都不知道怎么开发?项目开发之后你如何保证正常使用?
JVM虽然功能强大,但是还是需要其他的小伙伴给它提供原料(.class文件)。
仅仅是JVM,是无法完成一次编译,处处运行的。它需要一个基本的类库,也就是我们很熟悉的API,比如怎么操作文件、怎么连接网络等。
Java体系中,在一个程序执行的时候,JVM也会一起运行和一起销毁,会一次性将JVM运行所需的类库都传递给它。JVM标准加上实现的一大堆基础类库,就组成了Java的运行时环境,也就是我们很熟悉的JRE (Java Runtime Environment)。
有了JRE之后,我们的Java程序便可以在任意操作系统中运行了。
扩展:涨知识环节:
你可能听说过:如果只是运行环境的话,只需要安装JRE即可。
没错,如果只需要运行一些Java程序,只需要一个JRE就足够了。
对于JDK来说,个体是非常庞大的。除了携带着JRE之外,JDK还提供了一些非常好用的小工具,比如:java、javac、jar等。它是Java开发的核心,就像给厨房提供各种料一样,从而能抄出美味的菜。
扩展:涨知识环节:
如果是开发环境就需要安装JDK了。
JDK的全拼Java Development Kit。JVM、JRE、JDK他们三者之间的关系,可以用一个包含的关系表示。
三者包含关系:
JDK>JRE>JVM