gpt4 book ai didi

java - 虚拟机: Bytecode Confusion and JIT

转载 作者:行者123 更新时间:2023-12-01 04:34:16 25 4
gpt4 key购买 nike

这是我在学习Java时想到的一个问题。我们知道(如果我错了,请纠正我!)字节码运行在 JVM 之上。那么 JVM 是否会将字节码转换为其(JVM)为其编写的 native 机器代码?如果真是这样,那不是更不安全吗?

另外,即时编译器到底是什么?当要求这样做时它就会编译...我研究了一些资源,但仍然没有弄清楚即时部分。

感谢您的帮助!

最佳答案

So does the JVM convert the Bytecode to the native machine code it's(JVM) written for?

不,不一定。不过,如今默认这样做是最先进的。

If that is so, isn't it less secure?

比什么更不安全?仅仅因为可以在机器代码中执行不安全的操作(例如取消引用未初始化的指针或访问未分配的内存)并不意味着 JIT 会生成此类不安全的代码。

Also what exactly is a just-in-time compiler?

它是 JVM 将字节码转换为 native 机器代码的部分。“及时”这个名称意味着代码在执行时被编译(在单独的线程中)。完全编译后,JVM 会注意到某些方法已编译并且可以在机器级别上调用。

关于java - 虚拟机: Bytecode Confusion and JIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17555405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com