Java - JDK,JRE,JVM - JVM Tutorial
It is a platform-independent abstract machine because it doesn't physically exist.
It enables your computer to run a Java program. It only uses the resource like ram and memory. It is a specification that provides a runtime environment in which Java bytecode can be executed.
When you run a java program, Compiler will convert the java program to java bytecode. then JVM will execute a java bytecode to generate machine code.