是一门编程语言,同时也是一个运行平台和开发平台。大家进入Java开发领域,一定会经常与JDK、JRE和JVM三个名词打交道。我们梳理一下这三个名词,对整个Java平台也会有更清晰的理解。
- JDK : Java Development ToolKit
- JRE:Java Runtime Environment
- JVM:Java Virtual Machine
简单来说,这三者是逐层包含的关系。来看一个Java官方介绍Java的图:
从图中可以看到:
-
JDK在包含JRE之外,提供了开发Java应用的各种工具,比如编译器和调试器。
-
JRE包括JVM和JAVA核心类库和支持文件,是Java的运行平台,所有的Java程序都要在JRE下才能运行。
-
JVM是JRE的一部分,Java虚拟机的主要工作是将Java字节码(通过Java程序编译得到)映射到本地的 CPU 的指令集或 OS(操作系统) 的系统调用。JVM回根据不同的操作系统使用不同的JVM映射规则,从而使得Java平台与操作系统无关,实现了跨平台的特性性。
上面这张图包含了太多元素,我们用一张更加简化的图就能更清晰得看到三者之间的关系:
在实际开发过程中,我们首先编写Java代码,然后通过JDK中的编译程序(javac)将Java文件编译成Java字节码(.class文件),JRE加载和验证Java字节码,JVM解释字节码,映射到CPU指令集或OS的系统调用,完成最终的程序功能。