Is the JVM a compiler or an interpreter?

后端 未结 8 1066
傲寒
傲寒 2020-12-02 03:48

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 n

8条回答
  •  再見小時候
    2020-12-02 04:32

    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:

    • 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 java is secure)
    • Next, the Execution Engine component converts the Bytecode into executable machine code

    Hope this helped you..

提交回复
热议问题