Java虚拟机是一台执行字节码的虚拟机计算机,但是字节码不一定是由Java语言编译而成。但是只要使用这一套虚拟机规则的语言,就可以享受到跨平台,垃圾收集以及可靠的即时编译器。JVM和硬件之间没有直接的交互。
javac命令在JDK中,也就是将.java文件编译成为.class文件,这个就是前端编译器,将源文件编译成为字节码。这个编译器不在JRE中,也说明了JREJRE和JDK都包括了JVM虚拟机。JRE是运行时环境,而JDK包含了开发环境。
原文:https://www.cnblogs.com/Lovem1314/p/14494943.html