JVM何时会将字节码转换为机器码? 1.在类加载期间每个类只转换一次? 2.在创建类的每个对象时,示例来自Student类的Student对象? 3.还是在每次方法调用期间?
在方法调用期间,这将如何与方法堆栈同步。
发布于 2018-10-24 09:04:24
“当它感觉到它的时候”。我不是故意轻率的,但是没有通用的答案。
JVM可以解释字节码,也可以将其编译为本机代码。机器代码运行得更快,但编译它需要时间和空间。因此,需要进行权衡,并且不需要以这样或那样的方式处理权衡。实际上,它可以从一个JVM到另一个,或者从一个版本到另一个版本。
这个主题被称为“即时”编译(JIT),将会有不同的实现。请查阅您的JVM文档。
我的猜测是,一种可能的机制是注意到相同的方法已经被执行了“一些次数”,因此将受益于被编译为机器码。也就是说,你的第三个答案可能是最接近的。
https://stackoverflow.com/questions/52959428
复制相似问题