JDK (java development kit):JDK是java开发工具包,是一切java应用程序的基础,所有的java应用程序是构建在这个之上的,它是一组API,其中包括我们熟知的javac.exe编译程序。
JRE (java runtime environment ):JRE是指java运行环境,JRE里面有一个JVM, JRE 与具体的 CPU结构和操作系统有关,我们从 Sun 下载 JRE 的时候就看到了不同的各种版本,同 JVM 一起组成 JRE 的还有 一些 API (如 awt , swing 等),JRE 是运行 Java 程序必不可少的。
JVM (java virtual machine):JVM是java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上执行,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释给本地系统执行。JVM的主要工作是解释自己的指令集(即字节码)到 CPU的指令集或 OS 的系统调用,保护用户免被恶意程序骚扰。 JVM对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的 组成包括 JVM指令集,符号表以及一些补助信息。
我们开发的实际情况是:我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。