我们知道javac.exe将java源文件编译成字节码文件,既然是编译,那么生成的文件应该就是二进制的“机器”指令了,如果是,那么按照常理,之后用java.exe的作用就应该是执行指令了,可为什么说Java.exe是解释器,难道源文件在编译成字节码文件(字节码文件已经是二进制文件了)之后还要再经过一次解释(或说成是转换)之后才最后交给java虚拟机去执行吗?如果是的话,那么干嘛不将这两个步骤合二为一呢,这样分开做又是出于什么原因呢?我个人认为java虚拟机说的简单一点也不就是个中间解释器而已,因为java虚拟机的作用是将java程序转换为所在机器的机器指令,同一个java程序在不同的机器上,经java虚拟机翻译出来的最后结果是截然不同的