a.编写.java文件源码
b.调用编译器(javac.exe)对.java文件源码进行编译
c.编译后生成了.class结尾的字节码文件
a.调用java.exe,用类加载器装载字节码文件.
b.把装载后的字节码文件提交给JVM(java虚拟机).
c.jVM会根据当前的操作系统对字节码文件进行解释操作
然后解释成相应的机器语言(0,1代码)
d. 机器代码被操作系统读取后,就能完成运行操作了
JDK即java development kit,java开发工具包。此为java程序编译的必要条件。
JRE即java runtime environment,java运行环境。此为java程序运行的必要条件。
JVM即为java virtual machine,java虚拟机。此为java程序跨平台运行的必要条件。
关系图如下所示

对于开发者而言,选择JDK(java开发工具包),因为开发者既需要编译java程序也需要运行java程序。
对于客户而言,选择JRE(java运行环境),因为客户只需要能运行java程序就行了。