Java programmers must understand the differences between JDK, JVM, and JRE. So let's discuss them briefly.
JDK is abbreviated as Java Development Kit, which has a physical existence. It can be considered as a kit inside which resides the JRE along with developing tools within it. The programmers and developers mostly use it.
JVM is abbreviated as Java Virtual Machine, which is a dummy machine, or you can say an abstract machine that gives Java programmers a runtime environment for executing the Bytecode. For each execution of your program, the JDK and JRE come into use, and they go within the JVM to run the Java source code.
JRE is abbreviated as Java Runtime Environment, as the name suggests used as a package that gives an environment to run the Java program on your machine.