学好JAVA基础(二): JVM、JRE、JDK之间的关系
-
JDK(java development kit)
JDK是Java开发工具包,是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
-
JRE( java runtime environment)
JRE是java的运行环境,包含JVM标准实现及Java核心类库。
JVM(java virtual machine)
JVM是java虚拟机,是整个java实现跨平台最核心的部分,能够运行以Java语言写作的软件程序。
以上是三者的基本定义,那么它们三个有什么关系呢?下面我们通过一幅图来简单描述一下。
简述就是:
JDK = JRE + 其它
JRE = JVM +其它
由此可得出,JRE和JVM是JDK的一部分,所以接下来,我们详解一下JDK,也顺带解析一下其中JRE,JVM部分。
首先,我们先看一下JDK安装之后的目录,都指代什么意思
我们看到了什么?
是的,跟上面我们画的图一样,在JDK安装包里,jre包标明的是java运行环境 - java虚拟机,没错,它指的就是JVM,而lib是类库,lib+jre = JRE。而JRE就是java所运行的环境。这里的JRE并不是单纯指的是开发环境,而是针对开发者所用的一系列相关东西。
由此,我们针对这一系列描述,可以得出java运行的基本步骤。
首先 JDK 中的编译器(javac)对代码进行编译——存储在
.java
文件中的源代码被编译成字节码存储在.class
文件中-
运行过程发生在 JRE 中:
- Class Loader 加载执行程序所需的全部类
- Byte Code Verifier验证代码的格式和合法性
- Interpreter 加载并执行字节码,换句话说就是JVM 将字节码解析为机器码并映射到 CPU 指令集或 OS 的系统调用。
(Java 程序运行时 JVM 是 JRE 的一个实例,也就是 runtime interpreter。它执行的是
.class
文件,它会将字节码翻译为平台可以执行的机器码。)好了,基础层面,我们就先了解到这吧,有兴趣的同学可以自己多了解一下JVM、JRE、JDK更多知识。