JVM(Java Virtual Machine):Java虚拟机是可以运行Java字节码(即后缀名为.class的文件)的虚拟机。JVM针对不同的操作系统(Windows, Linux, macOS)有特定的实现,基于此,也就印证了Java的一大特性 — 跨平台。相同的字节码,在不同的操作系统上,会得出相同的结果。不能运行已编译的Java程序。
JRE(Java Runtime Environment):Java运行时环境,可以运行已编译的Java程序,但不能用于创建新程序。
JRE = JVM + 核心类库 + Java命令 + 一些基础构件
JDK(Java Development Kit):Java开发工具包,是功能齐全的Java SDK。能够创建和编译程序。
JDK = JRE + 编译器(javac)+ 工具(javadoc 和 jdb)
由于JDK包含JRE,JRE包含JVM,因此只需要安装JDK即可。
Oracle JDK和Open JDK的对比
- Oracle JDK大概六个月更新一次,Open JDK大概三个月更新一次。
- Oracle JDK并非完全开源,而Open JDK是完全开源的。
- Oracle JDK比Open JDK性能更好,更稳定。
- Oracle JDK根据JRL(Java Research License,Java研究授权协议)获得许可,而Open JDK根据GPL(General Public License)协议获得许可。