I have a very basic question about JVM: is it a compiler or an interpreter?
If it is an interpreter, then what about JIT compiler that exist inside the JVM?
If neither, then what exactly is the JVM? (I dont want the basic definition of jVM of converting byte code to machine specific code etc.)
First, let's have a clear idea of the following terms
Javac
is Java Compiler -- Compiles your Java code into Bytecode
JVM
is Java Virtual Machine -- Runs/ Interprets/ translates Bytecode into Native Machine Code
JIT
is Just In Time Compiler -- Compiles the given bytecode instruction sequence to machine code at runtime before executing it natively. It's main purpose is to do heavy optimizations in performance.
So now, Let's find answers to your questions..
1)JVM: is it a compiler or an interpreter?
-- Ans: Interpreter
2)what about JIT compiler that exist inside the JVM?
-- Ans: If you read this reply completly, you probably know it now
3)what exactly is the JVM?
-- Ans:
.class
file into the RAMHope this helped you..