JDK, JRE and JVM
JDK is basically provide the environment which is used for developing and executing the Java application. JDK is platform dependent development tool kit as per OS configuration.
JRE provide the runtime environment through which the compiled code can execute on client machine and it is not mandatory to have development kit on client machine. JRE contains set of jar files or libraries and other files used by JVM at run time.
JVM stands for Java Virtual Machine which is an abstract machine. It provides the run time environment to execute bytecode or .class files.
We can see the below diagram for more understanding.