为什么Java解释和编译都有?
首先在 Java 经过编译之后生成字节码文件,接下来进入 JVM 中,就有两个步骤编译和解释。 如下图:
编译性:
- Java 源代码首先被编译成字节码,JIT 会把编译过的机器码保存起来,以备下次使用。
解释性:
- JVM 中一个方法调用计数器,当累计计数大于一定值的时候,就使用 JIT 进行编译生成机器码文件。否则就是用解释器进行解释执行,然后字节码也是经过解释器进行解释运行的。
所以 Java 既是编译型也是解释性语言,默认采用的是解释器和编译器混合的模式。