Java字节码执行效率比传统解释型语言高?
以下这句话,在很多地方和书籍上都看到,但是就是没有说明为什么java的字节码比传统的解释型语言效率高。按照我的理解,字节码在运行的时候,也是要用jvm的解释器先解释成机器码,然后才能执行的(这里先排除jvm的jit的影响),所以没搞明白为什么字节码的执行就比传统的解释型语言要快了。能想到的就是字节码是紧凑型的,文件很小,不知大家怎么理解下面图片中的那句话---Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
java字节码是伪机器码,自然会比解析型语言高,JVM不是解析型语言,是半编译半解析型语言,解析型语言没有编译过程,直接解析源代码文本,相当于是在执行时进行了一次编译,而java的字节码虽然无法和本地机器码完全一一对应,但可以简单映射到本地机器码,无需做复杂的语法分析之类的编译处理,当然比纯解析语言快。
解释型语言是运行时才编译成机器语言,自然效率低。java由字节码到机器语言效率高一点,另外jvm还会将热点代码缓存。