| Java Virtual Machine: Introduced for MANAGING system memory and also to provide a PORTABLE execution environment for Java applications. | Just in Time Compilation: This is a part of JVM and was developed for improving JVM performance. | Java Development Kit: JDK is a cross-platformed software development environment offering various collections of libraries and TOOLS required for developing Java applications and applets. | Java Runtime Environment: JRE is part of JDK that consists of JVM, core classes and support libraries. It is used for providing a runtime environment for running Java programs. |
| Used for compiling byte code to machine code completely. | This is used for compiling only reusable byte code to machine code. | JDK is essential for writing and running programs in Java. | JRE is a subset of JDK and is like a container that consists of JVM, supporting libraries and other files. It doesn't have development tools such as compilers and debuggers. |
| This is used for providing platform independence. | This is used for improving the performance of JVM. | JDK is used for developing Java programs as it provides libraries and compiler tools as well as JRE for running the code. | JRE is not suitable for development. It is used for running Java Programs as it provides runtime environments and tools for supporting execution. |