深入理解Java基础学习参考
值得特别注意的是,在Java学习过程中,我们必须关注到.class文件转化为机器码的关键步骤。在这一过程中,JVM类加载器首先负责加载字节码文件,接着通过解释器逐行执行,然而这种执行方式相对较慢。一些方法和代码块经常被调用,即热点代码,因此引入了JIT编译器,属于运行时编译。一旦JIT编译器完成首次编译,会将字节码对应的机器码保存下来,以便下次直接使用。机器码的运行效率明显高于Java解释器,解释了Java经常被描述为编译与解释共存的语言。HotSpot采用了惰性评估的策略,根据二八定律,系统资源主要被热点代码消耗。JIT仅编译这一小部分代码,这也是JIT所需编译的部分。JVM根据代码每次执行的情况收集信息,并相应地进行优化,执行次数越多,速度越快。JDK 9引入了新的编译模式AOT(Ahead of Time Compilation),将字节码直接编译成机器码,避免了JIT预热等开销。JDK支持分层编译和AOT协作使用。然而,
用户评论