1 .. Frankly, the idea that java has both a compiler and an interpreter is a myth , its behavior , which is labeled Compilation and translator.
2. The Java compiler compiles human readable code into byte code. Which is then converted by JIT (Just In Time Compiler) at run time to machine level executable code.
3. In Runtime, the JIT identifies the intensive part of the execution code, and then converts it into machine-level executable code, this part of the code is known as Hot-Spot , which is why JIT is called the Hot-Spot compiler .
4. JIT uses the Virtual memory table (V-table) , which is a pointer to a method in the class . Then the Hot-Spot code is converted into executable code of its machine level, its address is stored here, and when this part is called again, then this stored address directly extracts it . This behavior of JIT to keep compiling small amount of code during Run time is assumed to be Interpreted Behavior and the JIT behaviour of storing this for later use is assumed as Compilation .
5. The virtual memory table also has a table that stores the address of the byte code, which can be used if necessary.
Kumar Vivek Mitra
source share