JDK stand for Java development kit.Just think when we going to develop any kind of Java application it goes through two phase.
First phase :We develop the program.
Second phase:We executing or run or compile the Java program.
So to Develop and run the Java application the required environment is JDK.
JRE stand for Java runtime environment.
Only to run Java application the required environment is JRE.
We Develop a Java application and give the client and said him please run it your machine it full fill your requirement.
Here Client is not responsible for Develop he only responsible for run the Java application
JVM stand for Java virtual machine.
JVM is responsible for run Java program in JRE.
JVM execute the Java program line by line so it is a interpreter.
Suppose one of your Java program having 10 line and JVM find a error in line 5 then the remaining line can’t be executed as it execute the Java program line by line.
JDK = JRE +Development tools.
JRE=JVM+ Library