🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
> ### 编译器 * **前端编译器**,`javac`, 把`*.java`文件转变成`*.class`文件的过程。 * **后端运行期编译器**,`JIT`(Just In Time Compiler),把字节码转换成机器码的过程。 * **静态提前编译器**,`AOT`(Ahead Of Time Compiler),直接把`*.java`文件编译成机器代码的过程。 <br/> > `javac` * 处理`java`语法糖,泛型、自动拆装箱、遍历循环、变长参数 <br/> > 解释器与编译器 * 此处编译器是指`JIT` * 主流的Java虚拟机采用解释器与编译器并存的架构 * 当程序需要迅速启动和执行的时候,解释器可以首先发挥作用,省去编译时间,立即执行。在程序运行后,编译器逐渐发挥作用,把越来越多的代码编译成本地代码,这样可以获取更高的执行效率。 * `-Xint`强制虚拟机运行于解释模式,这时编译器不工作 * `-Xcomp`强制虚拟机运行于编译器模式,这时解释器不工作,但是解释器任然会在编译器无法进行时介入工作 * 在运行过程中会被即时编译器编译的**热点代码**有两类: * 被多次调用的方法 * 被多次执行的循环体