We must understand the basic difference between the JDK, JRE, and JVM before diving deep into Java.
|JDK stands for Java Development Kit. It provides development tools and execution environment.||JRE stands for Java Runtime Environment. It provides the set of tools only to execute our program.||JVM stands for Java Virtual Machine. It is responsible for the program to execute line by line.|
|JDK is the superset of the JRE. It contains JRE with Java compiler, debugger, and core classes.||JRE contains a set of libraries and other files that JVM uses at runtime.||It contains JIT (Just in Time Compiler), interpreter, and set of APIs. JIT optimizes bytecode to machine specific language compilation by compiling similar bytecodes.|
|Uses JVM, interpreter/loader, a compiler, an archiver, a documentation generator (Javadoc), and set of APIs to complete the development of Java application.||Uses a set of libraries, other jar files, and set of API to run the program. It doesn’t play any role during development. It only works to run the program.||JVM works to Load code, Verifies code, and Execute code and provides a runtime environment.|
|It physically exits||It physically exits||It doesn’t physically exist.|