首页 > 解决方案 > java解释器在逐行执行代码之前是否执行转换/翻译?

问题描述

维基百科和其他一些网站将解释器描述为将代码从某种高级语言翻译成某种低级语言的翻译器。但是,那里有很多解释,包括在 stackoverflow 中,它说解释器直接执行作为输入的指令而无需事先转换。那么解释器是像编译器一样的翻译器还是像 CPU 一样的执行器?

标签: javacompiler-constructiontranslationinterpreter

解决方案


这在很大程度上取决于。

您必须了解当今的 jvm 实现是大而强大的工具。

通常,他们有口译员部分。那个首先启动:它读取字节码并直接解释它自己。Java虚拟机这个名字的直接意义!

但是,一旦特定代码被重复执行(即数千次重复),所谓的即时编译器就会启动。它们将字节码转换为本机机器码并进行各种性能优化,例如方法内联。

因此,此类 jvm 正在做您在问题中提到的两件事。


推荐阅读