Java是编译型和解释型两种类型的结合。
流程
Java首先是利用文本编辑器编写Java源程序,源文件的后缀名为.java;
再利用编译器(Javac)将源程序编译成字节码文件,字节码文件的后缀名为.class;
最后利用虚拟机(解释器,java)解释执行。
JVM
JVM是一个虚拟用于执行bytecode字节码的“虚拟计算机”。它也定义了指令集、寄存器集、结构栈、垃圾收集栈、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度会受到影响。“一次编译,处处运行”。
JRE
包含Java虚拟机、库函数、运行Java应用程序所必须的文件。
JDK
包含JRE,以及增加编译器和调试器等用于程序开发的文件。
综上所述,JDK包含JRE包含JVM。