|JDK = Java Development Kit, basically it's the SDK (Software Development Kit) of the Java world. Long story short, it'll contain the libraries and tools needed to help build a Java application. It also ships with the JRE, but contains so much more. You'll need to install this on your development machine.
JRE = Java Runtime Environment, this will need to be installed to run a Java application on a non-development machine. It'll contain the pre-built binaries that even the JDK will use and there will be some overlap as far as while goes into it when compared to the JDK. But, you'll need to install this on your end users machines. They won't need all the tools a developer does and this installed only what's needed to run an application.
JVM = Java Virtual Machine, Java compiles down to a bytecode and not native code. The VM is what reads the bytecode and runs it on the computer. Anything written in Java must be ran through this and both the JDK and JRE will install it as an application or library cannot run without it.