#####JDK: Java Development Kit, Java development kit, for developers, which mainly contains JRE, JVM, JDK source package, and bin folder for development, compilation and running some directives.

#####JRE: Java Runtime Environment for Java users who have a runnable. Class file package (JAR or WAR). It contains the JVM and Java runtime base libraries (Rt.jar). Rt.jar is a Java source code compiled jar. When you use Eclipse, you need to add rt.jar’s source code when you CTRL click and you cannot jump to the source file. Rt.jar’s source code is in the JDK folder src.zip.

######JVM: Java virtual machine, which is the core part of the entire Java implementation cross-platform, all Java programs are first compiled into. Class class files, which can be executed on the VIRTUAL machine.

That is, classes do not correspond directly to the machine’s operating system, but interact indirectly with the operating system through the virtual machine, which interprets programs to the local system.

Only the JVM cannot execute a class, because to interpret a class the JVM needs to call the library lib, and the JRE contains the library lib.

The JVM shields platform-specific information, allowing Java programs to run unmodified on multiple platforms by generating object code (bytecode) that runs on the Java VIRTUAL machine.

####JDK and JRE difference: go to the bin folder you will find that the JDK has javac.exe and JRE does not, as we all know javac instruction is used to compile Java files into class files, this is your development to do, the user is not to do. The JDK also has jjar. Exe, javadoc. Exe and other executable instruction files for development. This also confirms that there is a development environment and a running environment.

#### The difference between JRE and JVM: some people think that the JVM can execute class, but in fact, the JVM can execute.