Course Content
Core Java
About Lesson

JDK

Java Development Kit aka JDK is the core component of Java Environment and provides all the tools, executables, and binaries required to compile, debug, and execute a Java Program. JDK is a platform-specific software and that’s why we have separate installers for Windows, Mac, and Unix systems.

JRE (Java Runtime Environment)

JRE is the implementation of JVM. It provides a platform to execute java programs. JRE consists of JVM, Java binaries, and other classes to execute any program successfully. JRE doesn’t contain any development tools such as Java compiler, debugger, JShell, etc. If you just want to execute a java program, you can install only JRE. You don’t need JDK because there is no development or compilation of java source code is required.

JVM (Java Virtual Machine)

When we execute a Java program, JVM is responsible for converting the byte code to the machine-specific code. JVM is also platform-dependent and provides core java functions such as memory management, garbage collection, security, etc. JVM is customizable and we can use java options to customize it.

JIT (Just-In-Time Compiler)

JIT is part of the JVM that optimizes the process of converting byte code to machine-specific language (machine code). It compiles similar byte codes at the same time and reduces the overall time taken for the compilation of byte code to machine-specific language. The JVM decides which code to JIT compile based on profiling information collected during execution. The startup time is likely not optimal, as the executed code is not yet JIT compiled.

Ahead of Time Compilation

In AOT compilation, the entire program or its significant parts are compiled in advance, typically during the build phase. The resulting binary is platform-specific and does not require further compilation at runtime. Compilation occurs before the execution of the application, allowing for optimizations and analysis to be performed ahead of time. It reduces startup time.

Scroll to Top