
JVM which stands for Java Virtual Machine can be considered as the heart of java.
It converts Java bytecode into machines code or you can say machine language. JVM is a part of Java Run Environment (JRE).
The bytecode which is converted by the JVM is created by the java compiler. The compiler converts the .java code or you can say the source code to byte code.
JVM is not platform-independent, that’s why you have different JVM for different operating systems.
The primary advantage of Java JVM is code compatibility as it eases a programmer’s job to write code only once and run anywhere. Once the application is built it can be run on any device that has JVM. So the job of the programmer is to write only the java code. The compiler and then the JVM takes care of the best.

As seen above, the execution engine executes the bytecode which is assigned to the runtime data areas through the classloader.