源码文件(.java)到代码执行的全过程:
该过程主要分为四个阶段,“编译-》加载-》解释-》执行”。
在编译阶段需要将源码文件(.java)通过语法分析、语义分析、注解处理后得到class文件;
在加载阶段则是先校验class的信息,然后为其在堆中分配内存空间并给类中的变量赋上默认初始值,将符号引用转为直接引用,其实也就是“验证-》准备-》解析”的过程;
在解释阶段则是先找到这个类的字节吗信息,然后将其转换为操作系统可以识别的指令,在这个过程中会有两个解释器,一个是字节码解释器还有一个就是即时解释器(JIT),JVM会判断该字节码是不是热点代码(也就是使用频率很高的代码),对于热点代码就会使用JIT将其指令码保存起来,在下次用的时候直接使用,提高执行效率;
最后的执行阶段就是调用硬件去具体执行了。