JVM stands for Java Virtual Machine and is the specification.

JRE is the implementation of the JVM specification for a Java Runtime Environment.

JDK is a set of development tools which include the JRE for working with Java.