我有一个关于 JVM 的非常基本的问题:它是编译器还是解释器?
如果是解释器,那么JVM内部存在的JIT编译器呢?
如果两者都不是,那么 JVM 到底是什么? (我不想要将字节码转换为机器特定代码等的JVM的基本定义。)
最佳答案
首先,让我们对以下术语有一个清晰的认识
Javac
是 Java Compiler -- 将你的 Java 代码编译成 Bytecode
JVM
是 Java 虚拟机 -- 运行/解释/翻译字节码为 native 机器码
JIT
是即时编译器——在本地执行之前将给定的字节码指令序列编译为 runtime 的机器码。它的主要目的是对性能进行大量优化。
现在,让我们为您的问题寻找答案。
1)JVM:它是编译器还是解释器?
-- Ans:解释器
2)JVM中存在的JIT编译器呢?
-- Ans:如果你完整阅读了这个回复,你可能现在就知道了
3)JVM到底是什么?
-- Ans:
- JVM 是驻留在 RAM 上的虚拟平台
- 其组件类加载器将
.class
文件加载到RAM中 - JVM 中的字节码 validator 组件检查您的代码中是否存在任何访问限制违规。 (这是 java 安全的主要原因之一)
- 接下来,执行引擎组件将字节码转换成可执行的机器码
希望这对您有所帮助..
关于java - JVM 是编译器还是解释器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674839/