JRE 与 JVM、JDK 的区别 一、 详细介绍 1、JVM -- java virtual machine JVM 就是我们常说的 java 虚拟机,它是整个 java 实现跨平台的 最核心的部分,所有的 java 程序会首先被编译为
class 的类文件,这种类文件可 以在虚拟机上执行,也就是说 class 并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解 释给本地系统执行
JVM 是 Java 平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行 时操作不同的内存区域
JVM 通过抽象操作系统和 CPU 结构,提供了一种与平台无关的代码执行方法,即与特殊的实现方 法、主机硬件、主机操作系统无关
但是在一些小的方面, JVM 的实现也是互不相同的,比如垃圾回收 算法,线程调度算法(可能不同 OS 有不同的实现)
JVM 的主要工作是解释自己的指令集(即字节码)到 CPU 的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰
JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )
类文件的 组成包括 JVM 指令集,符号表以及一些补助信息
2、JRE -- java runtime environment JRE 是指 java 运行环境
光有 JVM 还不能成 class 的 执行,因为在解释 class 的时候 JVM 需要调用解释所需要的类库 lib
在 JDK 的安装目 录里你可以找到 jre 目录,里面有两个文件夹 bin 和 lib,在 这里可以认为 bin 里的就是 jvm,lib 中则是 jvm 工 作所需要的类库,而 jvm 和 lib 和起来就称为 jre
所以,在你写完 java 程序编译成
class 之后,你可以把这个
class 文件