Java virtual Machine(JVM) is a abstract or a virtual Machine that provides runtime environment to execute java byte code. It does not understand Java typo,when we complile our java program abc.java to obtain abc .class file that contain bytecode is understand by JVM. JVM control execution of every Java program. It enables features such as exception handling, garbage collection etc
The JRE is Java Runtime Environment .The JRE is actually present or actually exist into your system when you download a JDK(Java Development Kit). It provides the libraries and jar files, the (JVM) Java Virtual Machine, and other components to run applets and applications written in the Java programming language. JRE does not contain tools and utilities such as compilers or debuggers for developing java applications.
The JDK stands for Java Development Kit is a container of JRE (JRE is included in JDK), and contains everything that is in the JRE, and also tools such as the compilers ,JIT(Just in Compiler) and debuggers necessary for developing java applications.