美文网首页
jvm、jre、jdk

jvm、jre、jdk

作者: going_hlf | 来源:发表于2020-09-12 16:24 被阅读0次

初学java的人,一定被这几个名词搞晕过。在这里把它们的区别记下来。

先来个名词解释:

JVM :英文名称(Java Virtual Machine),就是我们耳熟能详的 Java 虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。所以说,jvm 是 Java 能够跨平台的核心。

JRE :英文名称(Java Runtime Environment),我们叫它:Java 运行时环境。它主要包含两个部分,jvm 的标准实现和 Java 的一些基本类库。它相对于 jvm 来说,多出来的是一部分的 Java 类库。

JDK :英文名称(Java Development Kit),Java 开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 、编译器、调试器和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

再稍微展开解释下:

JVM:就是用于执行java字节码的一个运行环境。这个东西的好处在于支持了程序的可移植性。不管你是用什么语言编写的程序(这里不限于java),只要你能将它翻译(编译)成jvm认识的字节码格式,它就可以执行。
另外,jvm也不是一个版本走遍天下的。比如它有windows版本、linux版本、mac版本等等,不同jvm版本将字节码解析成相应操作系统可以认识的机器语言用于执行。所以,程序员只需要在你不同的操作系统上装上不同的jvm,然后你的同一份代码就可以在不同的操作系统之上运行,而程序员完全感知不到差异。

JRE:严格来讲,如果你可以将每个java的字节码程序做到自满足,即包含自己所有运行时需要的库文件,jre就没什么用了,只要jvm就行。然后,相信所有人都不会这么傻,因为这样会导致很多程序重复包含一些通用的库文件。所以,为了消除重复,jre在发布jvm时,将一些你大概率能够用到的、非常通用的库也一并发布出来。这其实并不难理解,就是一些动态链接库。

JDK:jdk是集大成者,它是给开发人员用的,多了一些开发人员必须要用到的和有助于提高开发效率的工具。例如编译器和调试器程序。所以,如果你是开发人员,你的windows上安装的jdk,那么可以将你的jre卸载了。

综上,jre包含jvm,jdk包含jre和jvm。jvm一般不单存在。

直观目录对应关系

JVM:


jvm

JRE:


jre

JDK:


jdk

最后,你可能有时候听到java SDK,其实指的就是jdk。

SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”。这是一个覆盖面相当广泛的名词,可以这么说:辅助开发某一类软件的相关文档、范例和工具的集合都可以叫做“SDK”。SDK是一系列文件的组合,它为软件的开发提供一个平台(它为软件开发使用各种API提供便利)。

相关文章

网友评论

      本文标题:jvm、jre、jdk

      本文链接:https://www.haomeiwen.com/subject/rouwektx.html