JDK
- Java Development Kit
- Core component which provides tools, executables, and binaries required to compile, debug and execute a Java program
- Platform specific software
JVM
- Heart of Java programming language
- Convert bytecode to machine specific code
- Provides memory management, garbage collection, security, etc
JRE
- Implementation of JVM
- Consists of JVM and binaries, other classes to program successfully
In conclusion
- JDK is a development tool whereas JRE for running the Java program
- JDK and JRE both contains JVM
- JVM is the heart of Java programming which provides platform independence