java - java解释器在逐行执行代码之前是否执行转换/翻译?

标签 java compiler-construction translation interpreter

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

最佳答案

这很大程度上取决于。

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

通常,它们有解释器部分。首先启动的是它:它读取字节码并直接解释它本身。就其名称的直接意义而言,Java 虚拟机!

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

这样的jvm因此正在做你在问题中提到的两件事。

关于java - java解释器在逐行执行代码之前是否执行转换/翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52456736/

相关文章:

javascript - 如何在 JavaScript 中获取 Laravel 的语言环境?

java - 录制音频时运行其他进程

java - 单击Java时绘制多辆车

java - Android,如何在 OnClick 中从 TextView 获取文本

java - 一个 jar 文件可以在类路径中出现两次吗?

c - GCC 是否生成 Canary?

c++ - 使用 g++,如何弃用虚拟类成员函数

opengl - 在两个模型 View 矩阵之间进行插值

c - 为什么不允许使用 const 进行可变大小的对象初始化

c++ - 局部范围内可以有多少个变量