1.源码编译阶段将源码编译为JVM字节码,JVM字节码是一种中间代码的方式,由JVM在运行期对其进行解释并执行。
2.字节码解释执行,JVM有一套自己的指令,对于面向对象的语言而言,最重要的执行指令,JVM采用了invokestatic、invokevirtual、invokeinterface和invokeespecial四个指令来执行不同方法调用
invokestatic对应调用static方法
invokevirtual调用对象实例方法
invokeinterface调用接口方法
invokeespecial调用private方法和编译源码后生成<init>方法,此方法为对象实例化时初始化方法。
3.编译执行
Sun jdk在执行过程中对执行频率高的代码进行编译,对执行不频繁的代码采用解释的方式。