一、JDK
JDK(java development kit,java开发工具包),包括java运行时环境(Java Runtime Envirnment)、Java编译器、以及常用的Java类库等。
二、JRE
JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及JVM工作所需的类库。JRE目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是JVM,lib中则是JVM工作所需要的类库。
三、JVM
JVM(Java Virtual Machine,java虚拟机)是它是整个java实现跨平台最核心的部分,负责解释执行字节码文件,是可运行java字节码文件的虚拟计算机。
当使用Java编译器编译Java程序时,生成的是与平台无关的字节码,这些字节码只面向JVM。不同平台的JVM都是不同的,但它们都向编译器提供了相同的接口。JVM是Java程序跨平台的关键部分,只要为不同平台实现了相应的虚拟机,编译后的Java字节码就可以在该平台上运行。
同时JVM只关心是否是符合JVM规范的“有效字节码”文件,并不关心上层什么语言。