What is the difference between JDK, JRE and JVM?

Point of Distinction JRE JDK JVM
Acronym for Java Runtime Environment Java Development Kit Java Virtual Machine
Subset/Superset Subset of JDK. JRE = JVM + Java Packages Classes + Runtime Libraries. It is the implementation of JVM.

Superset of JRE. It contains JRE + Development Tools. It includes the Java Runtime Environment (JRE), an interpreter/loader (Java), a compiler (javac), an archiver (jar), a documentation generator (Javadoc) and other tools needed in Java development.

Subset of JRE. JRE = JVM + Runtime Libraries
Compilation & Execution You can not compile your code using JRE but you can run Java code. Eclipse uses its own Java compiler. It's not the standard javac compiler that is available with SDK.  You can compile and Run your code. -
Disk Storage Space Less More Less
Java Application Development Not possible to develop application, you can only run existing applications. Used to develop java applications. Not possible to develop application.