java - java解释器在逐行执行代码之前是否执行转换/翻译?
问题描述
维基百科和其他一些网站将解释器描述为将代码从某种高级语言翻译成某种低级语言的翻译器。但是,那里有很多解释,包括在 stackoverflow 中,它说解释器直接执行作为输入的指令而无需事先转换。那么解释器是像编译器一样的翻译器还是像 CPU 一样的执行器?
解决方案
这在很大程度上取决于。
您必须了解当今的 jvm 实现是大而强大的工具。
通常,他们有口译员部分。那个首先启动:它读取字节码并直接解释它自己。Java虚拟机这个名字的直接意义!
但是,一旦特定代码被重复执行(即数千次重复),所谓的即时编译器就会启动。它们将字节码转换为本机机器码并进行各种性能优化,例如方法内联。
因此,此类 jvm 正在做您在问题中提到的两件事。
推荐阅读
- javascript - Angular 材质:在特定 Firefox 版本的材质对话框之外单击时,UI 屏幕会闪烁
- python - 除 maplotlib 之外的实时线图替代方案?
- java - 纹理的使用与绘制三角形冲突,只显示一个
- php - 工匠修补程序中的 Laravel 数据库插入错误
- python - (Auto Py To Exe & Python)找不到“google-api-python-client”分发,应用程序需要它
- javascript - 如何在反应模式中将关闭按钮放置在模式窗口之外?
- amazon-web-services - 如何从 ubuntu 中完全删除 AWS SAM CLI 和 SAM CLI?
- excel - 具有 TRUE 的列中前三列的条件格式
- git - Git合并策略
- python - 错误说 TypeError: can only concatenate str (not "int") to str