美文网首页
Java解释执行与编译执行

Java解释执行与编译执行

作者: 晚歌歌 | 来源:发表于2021-07-09 11:53 被阅读0次

    问题

    Java语言是解释执行还是编译执行

    答案

    Java是解释执行和编译执行共同存在的

    过程

    Java源代码文件首先由Javac编译为字节码,字节码由各操作系统对应的虚拟机解释或编译执行。
    字节码:字节码是已经经过编译(.class文件),但与特定机器码无关,需要解释器转译后才能成为机器码的中间代码。
    无论是采用解释器进行解释执行,还是采用即时编译器进行编译执行,最终字节码都需要被转换为对应平台的本地机器指令。

    定义

    解释执行:将编译好的字节码一行一行地翻译为机器码执行。
    编译执行:以方法为单位,将字节码一次性翻译为机器码后执行。

    特点

    解释执行:将编译好的字节码一行一行地翻译为机器码执行,但不会进行编译

    编译执行:即时编译存在的意义在于它是提高程序性能的重要手段之一。根据“二八定律”(即:百分之二十的代码占据百分之八十的系统资源),对于大部分不常用的代码,我们无需耗时间将之编译为机器码,而是采用解释执行的方式,用到就去逐条解释运行;对于一些仅占据小部分的热点代码(可认为是反复执行的重要代码),则可将之翻译为符合机器的机器码高效执行,JIT编译器可以针对那些频繁被调用的“热点代码”做出深度优化,提高程序的效率,此为运行时的即时编译。

    image.png

    相关文章

      网友评论

          本文标题:Java解释执行与编译执行

          本文链接:https://www.haomeiwen.com/subject/lfhfpltx.html