JVM、JRE和JDK的概念
它们三个都是英语词汇的简称,所以知道那么的原来单词对理解它们的含义有帮助,也便于记忆。
JVM | JRE | JDK | |
---|---|---|---|
全称 | Java Virtual Machine,即Java虚拟机 | Java Runtime Environment,即Java程序运行时环境 | Java Development Kit,即Java程序开发工具包 |
说明 | JVM使Java语言具有了跨平台性。JVM是运行Java字节码的虚拟机。 | 它是运⾏已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机 (JVM),Java 类库,java 命令和其他的⼀些基础构件。 |
它拥有 JRE 所拥有的⼀切,还有编 译器(javac)和⼯具(如 javadoc 和 jdb)。它能够创建和编译程序。 |
JDK、JRE和JVM的关系
它们之间的关系是:JDK>JRE>JVM
JVM
JVM使Java语言具有了跨平台的特性。但需要注意的是JVM不跨平台,即Linux、Windows、Mac系统都可以使用同一套Java程序,但JVM不跨平台,不同的操作系统具有不同的JVM。
Java 虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现
(Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。
字节码是什么?
在Java中,JVM可以理解的代码就称之为字节码,即扩展名为.class的文件,只面向Java虚拟机。
采用字节码的好处是什么?
采用字节码使得Java语言具有了跨平台可移植的特点,无须重新编译就可以在多种不同操作系统的计算机上运行。
Java 程序从源代码到运⾏⼀般有下⾯ 3 步:
JRE
首先说明的是,JRE就包括了JVM,除此之外,还有运行时需要的核心类库,它不包含开发工具(JDK)、调试器和其它工具。
如果我们想要运行一个已有的Java程序,那么只需安装 JRE 即可。
JDK
JDK包括JRE所有的一切,所以也包括JVM,除此之外,还具有编译器(javac)和工具包(如javadoc、jdb等),能够创建和编译程序。
javac编译器能够将后缀名为.java的文件编译成后缀为.class的字节码文件。
如果我们想要开发一个全新的Java程序,那么必须安装 JDK 。