JVM、JRE与JDK三者的区别

版权声明:欢迎转载,转载请注明出处哦! https://blog.csdn.net/qq_41647999/article/details/88351537

JVM

Java Virtual Machine

java虚拟机。它只认识 xxx.class 这种类型的文件,它能够将 class 文件中的字节码指令进行识别并调用操作系统向上的 API 完成动作。

JRE

Java Runtime Environment

包含jvm 的标准实现和 Java 的一些基本类库。

JDK

Java Development Kit

Java开发工具包。jdk 是整个 Java 开发的核心,它集成了 jre 和一些好用的小工具。例如:javac.exe,java.exe,jar.exe 等。

三者的关系

显然,一层包含一层。JDK>JRE>JVM

Java能够跨平台运行的原因

Java运行的核心在于JVM,而正是JVM能够跨平台运行。不同的操作系统的 API 是不同的,。我们知道,不同的操作系统向上的 API 肯定是不同的,那么如果我们想要写一段代码调用系统的声音设备,就需要针对不同系统的 API 写出不同的代码来完成动作。

而 Java 引入了字节码的概念,jvm 只能认识字节码,并将它们解释到系统的 API 调用。针对不同的系统有不同的 jvm 实现,有 Linux 版本的 jvm 实现,也有 Windows 版本的 jvm 实现,但是同一段代码在编译后的字节码是一样的。引用上面的例子,在 Java API 层面,我们调用系统声音设备的代码是唯一的,和系统无关,编译生成的字节码也是唯一的。但是同一段字节码,在不同的 jvm 实现上会映射到不同系统的 API 调用,从而实现代码的不加修改即可跨平台运行。

还没明白就看完这一段,不同的系统(Windows、Linux、Mac)就代表三个国家的人,如果中国人(电脑)不懂他们讲的话就需要翻译,那么就有这么一个很牛的人什么都懂(JVM),他一个人就能把全部的语言翻译成中文(字节码)。这样的话反正中国人(电脑)认识了。

 

猜你喜欢

转载自blog.csdn.net/qq_41647999/article/details/88351537