JVM字节码是一种从人类可读的源码向机器码过渡的中间状态。即字节码是一种中间语言(IL)形态,不是真正的机器码。将java源码变成字节码的过程不是C或C++的那种编译。Java的"编译器"也不同于gcc,实际上它只是一个针对java源码生成类文件的工具。Java体系中真正的编译器是JIT。从某种意义上说,Java是"动态编译"的,即JIT运行时编译。