JVMJREJDK的作用与区别
Posted 算法与编程之美
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVMJREJDK的作用与区别相关的知识,希望对你有一定的参考价值。
一、引言
在Java环境配置和项目启动中,这三者的配置是项目启动的基础保证,但这三者的作用和区别呢,本文将对JVM、JRE、JDK的作用与区别进行讲解。
注:如果只是运行Java程序,只需要JRE即可,JRE通常非常小,其中包含了JVM,如果要开发Java程序,就需要安装JDK。
二、方法
JVM,JRE,JDK定义
JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。一般与OS操作系统打交道。
JRE(Java Runtime Environment),包含Java虚拟机、库函数、运行Java应用程序所必须的文件。
JDK(Java Development Kit),包含JRE,以及增加编译器和调试器等用于程序开发的文件。三者的区别与联系
联系
JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的JRE目录里面有两个文件夹bin和lib,在这里可以认为bin就是JVM,lib中则是JVM工作所需要的类库,而JVM和lib和起来就称为JRE。JVM+lib=JRE。总体来说,就是我们利用JDK(调用Java Api)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成Java字节码,在JRE上运行这些java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。区别
JDK和JRE区别:在bin文件夹目录下会发现,JDK有javac.exe而JRE里面没有,javac指令是用来将java文件编译成class文件的,这是开发者需要的,而用户(运行程序的人)是不需要的。JDK还有jar.exe,javadoc.exe等等用于开发的可执行指令文件。这也证实了一个是开发环境,一个是运行环境。
JRE和JVM区别:JVM并不代表就可以执行class了,JVM执行.class还需要JRE下的lib类库的支持,尤其是rt.jar。
通过对JVM,JRE,JDK的描述,我们就能看出三者之间的关系:
JDK: javac,jar,debugging,tools,javap
JRE:java,javaw,libraries,rt_jar
JVM:just in Time Compiler(JIT)
三、结语
搞懂三者的关系,能够让我们对java底层运行原理有一个良好的认知基础,以及加强我们对环境配置的了解。
稿件来源:深度学习与文旅应用实验室(DLETA)
作者:彭诚
主编:欧洋
以上是关于JVMJREJDK的作用与区别的主要内容,如果未能解决你的问题,请参考以下文章