Java字节码执行效率比传统解释型语言高?

以下这句话,在很多地方和书籍上都看到,但是就是没有说明为什么java的字节码比传统的解释型语言效率高。按照我的理解,字节码在运行的时候,也是要用jvm的解释器先解释成机器码,然后才能执行的(这里先排除jvm的jit的影响),所以没搞明白为什么字节码的执行就比传统的解释型语言要快了。能想到的就是字节码是紧凑型的,文件很小,不知大家怎么理解下面图片中的那句话---Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题?
字节码.png

阅读 5.4k
2 个回答

java字节码是伪机器码,自然会比解析型语言高,JVM不是解析型语言,是半编译半解析型语言,解析型语言没有编译过程,直接解析源代码文本,相当于是在执行时进行了一次编译,而java的字节码虽然无法和本地机器码完全一一对应,但可以简单映射到本地机器码,无需做复杂的语法分析之类的编译处理,当然比纯解析语言快。

解释型语言是运行时才编译成机器语言,自然效率低。java由字节码到机器语言效率高一点,另外jvm还会将热点代码缓存。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题