java - JVM 是编译器还是解释器?

标签 java jvm

我有一个关于 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/

相关文章:

java - TStream 中的元组到底是什么?

java - quartz ,调度过程始终存在

generics - Kotlin声明签名冲突?

java - Hibernate Search 5.5.3 - 按集合大小排序不再起作用

java - java导入xlsx批量数据

java MD5加密减去字节数组中的值

java - 无法分配超过 1397mb 的 JVM 堆

java - 每个 JBoss 服务器的 JVM 数量

java - GeoServer 可以自由使用哪个版本的 Java

java - JVM 类文件 validator 如何工作?