Posts

Showing posts from December, 2013

Is the JVM a compiler or an interpreter?

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  run-time  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 completely, you probably know it now 3) what exactly is the JVM?  --  Ans: JVM is a virtual platform that resides on your RAM Its component,  Class loader  loads the  .class  file into the RAM The  Byte code Verifier  component in JVM checks if there are any access restriction violations in your code. (This is one of the principle reasons why