请教JAVA一个即时编译的问题

JAVA既然采用的是即时编译器,为什么不一次编译完之后,就把所有代码翻译成当前机器上得所有机器指令,而是要针对热代码才翻译成机器指令,全部翻译成机器指令不是更快吗,也达到... JAVA既然采用的是即时编译器,为什么不一次编译完之后,就把所有代码翻译成当前机器上得所有机器指令,而是要针对热代码才翻译成机器指令,全部翻译成机器指令不是更快吗,也达到平台无关性 展开
 我来答
匿名用户
2015-07-22
展开全部
全部翻译成机器指令,哪怕实际上这些部分并没有执行到

你认为这会更快?
更多追问追答
追问
只是觉得,就算有些代码不怎么执行,全部翻译成机器指令,字节码文件也不见得会大多少,而且也会有c++的速度
追答
字节码文件跟机器指令没关系,字节码文件不会包含机器指令,因为它是平台无关的,要保证传输到其他机器(具有不同指令集)的时候都能以同样的方式执行

在执行字节码文件的时候, JVM 才会按照具体情况选择是否要生成机器指令

既然是在执行的时候才会生成机器指令,如果这一步骤花费的时间过长,对于运行这个文件的用户而言就是不好的体验
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式