JVM
Java Virtual Machine: An abstract machine on which Java runs. Initially the class loaders load, verify, and link the bytecode. Next, it stores class info in the memory area. Finally, it executes bytecode generated by the compiler.
JRE
Java Runtime Environment: bundle of software components used to run Java applications. Core components include an implementation of the JVM, classes required to run the Java programs, and property files.
JDK
Java Development Kit: Contains a JRE and development tools for developing, compiling, debugging, and executing a Java program.