What is difference between JDK, JRE and JVM?

What is difference between JDK, JRE and JVM?

               JVM, JRE, JDK are these 3 main components that help with the running of Java coded programs. These three are termed as core part of Java programming language. However, they are three different concepts.

             JDK stands for Java Development Kit. It provides all the tools, it's contain binaries  and executable files which are required to compile, debug and execute a java program. Hence, it is a core component of Java Environment. Java Develomeny Kit is platform specific, which means that there is a different JDK for unix, mac, windows etc.  JDK  is super contains with JRE ,Java compiler, debugger and core classes.
            JRE stands for Java Runtime Environment. It is primarily used to provide a runtime environment that facilitates the implementation of JVM. It primarily contains the set of core libraries and other files that JVM requires while executing Java code. JRE is platform dependent we need to install JRE as per hardware and software specif.
           JVM, stands for Java Virtual Machine. It is an  runtime environment where the Java bytecode can be executed byte by bye on mechhine. JVM is responsible for loading .class file, linking , verifying bye code, allocating memory in Memory area and executing the code. JVM is also platform dependent, as each platform has different specifics and configurations.
           Basically, JDK helps compile Java source code, whereas JVM is what actually runs the Java code on machine, and JRE is Specification of JVM where java code runs.