众所周知,java是先将java文件编译为class文件(字节码文件),然后通过jre里面的java虚拟机来运行class文件,这也是java跨平台性的原因。
java虚拟机中有着jit(java即时编译器),它会把class文件中热度高的代码(即使用频率高的代码)先编译为机器指令并保存下来,在后续的运行中会直接进行调用,而不用再次编译。其余的代码则是通常的解释运行,在java虚拟机中,编译和解释是同时进行的,所以说java是一门解释和编译并存的语言。并且,有着jit的存在,java的运行效率有着很大的提升。