我有一个关于JVM的基本问题:它是编译器还是解释器?
如果它是一个解释器,那么JVM中存在的JIT编译器呢?
如果不是,那么JVM究竟是什么?(我不想要将字节码转换为机器特定代码等的jVM的基本定义)
Sri*_*aru 146
首先,让我们清楚地了解以下术语
Javac
是Java Compiler - 将您的Java代码编译为Bytecode
JVM
是Java虚拟机 - 运行/解释/将字节码转换为本机代码
JIT
即时编译器 - 在运行时将给定的字节码指令序列编译为机器代码,然后本机执行.它的主要目的是对性能进行大量优化.
那么现在,让我们找到你的问题的答案..
1)JVM: is it a compiler or an interpreter?
- 答案:口译员
2)what about JIT compiler that exist inside the JVM?
- 答:如果您完整地阅读此回复,您现在可能已经知道了
3)what exactly is the JVM?
- 答案:
.class
文件加载到RAM中希望这对你有所帮助..
Mar*_*ers 30
它只是两者兼而有之,但在传统意义上都不是.
现代JVM采用字节码并在首次需要时将其编译为本机代码.在这种情况下,"JIT"代表"及时".它充当外部的解释器,但实际上它正在编译成机器代码.
不应将JVM与Java编译器混淆,Java编译器将源代码编译为字节码.因此,将它视为"编译器"是有用的,而是知道在后台它确实进行了一些编译.