请教JAVA一个即时编译的问题
JAVA既然采用的是即时编译器,为什么不一次编译完之后,就把所有代码翻译成当前机器上得所有机器指令,而是要针对热代码才翻译成机器指令,全部翻译成机器指令不是更快吗,也达到...
JAVA既然采用的是即时编译器,为什么不一次编译完之后,就把所有代码翻译成当前机器上得所有机器指令,而是要针对热代码才翻译成机器指令,全部翻译成机器指令不是更快吗,也达到平台无关性
展开
1个回答
2015-07-22
展开全部
全部翻译成机器指令,哪怕实际上这些部分并没有执行到
你认为这会更快?
你认为这会更快?
更多追问追答
追问
只是觉得,就算有些代码不怎么执行,全部翻译成机器指令,字节码文件也不见得会大多少,而且也会有c++的速度
追答
字节码文件跟机器指令没关系,字节码文件不会包含机器指令,因为它是平台无关的,要保证传输到其他机器(具有不同指令集)的时候都能以同样的方式执行
在执行字节码文件的时候, JVM 才会按照具体情况选择是否要生成机器指令
既然是在执行的时候才会生成机器指令,如果这一步骤花费的时间过长,对于运行这个文件的用户而言就是不好的体验
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询