Complete Guide on JDK JRE JVM JIT ByteCode

This tutorial will provide complete guide on JDK JRE JVM JIT ByteCode.

What is JDK ?

Java Development Kit (JDK) is software development environment which is used to develop java applications and applets.

JDK help us to develop Java application and have all below resources to complete or create a java application:

java runtime environment (JVM), Interpreter/loader (Java), compiler (javac), archiver(jar) and java documentation (Java doc).

What is JRE?

JRE stands for “Java Runtime environment”. JRE is integral part of the Java Development Kit (JDK).

It Provides us an environment and helps us to execute or run Java program. JRE physically in the form of files on your system.

What is JVM?

JVM stands for Java Virtual Machine. Both JDK and JRE contains JVM.

Java virtual machine (JVM) is a kind of unique virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode.

JVM is completely responsible for the execution of running Java programs and manage program memory using garbage collector.

JVM provides us the capability to run Java program on any operating system.

What is JIT?

JIT stands for Just-In-Time compiler. It is an essential part of JRE.

It is mainly responsible for performance optimization of Java-based applications at run time or execution time.

What is ByteCode?

Java also called as platform independent because of Bytecode.

The Bytecode gets generate in the form of .class file as soon as the Java program gets compiled. Bytecode is an instruction for JVM to covert it in to machine language. The Bytecode makes java to write once, run anywhere (WORA).

Java is platform independent. Because the Java compiler converts the source code to bytecode, which is Intermediate Language called as bytecode which can be executed on any platform or operating system.

Bytecode alone is of no use and non-runnable as it requires an interpreter (JVM) to run on any machine.

Imran Khan

Specialist Master (Architect) with a passion for cutting-edge technologies like AEM (Adobe Experience Manager) and a proven track record of delivering high-quality software solutions.

  • Languages: Java, Python
  • Frameworks: J2EE, Spring, Struts 2.0, Hibernate
  • Web Technologies: React, HTML, CSS
  • Analytics: Adobe Analytics
  • Tools & Technologies: IntelliJ, JIRA

🌐 LinkedIn

📝 Blogs

📧 Imran Khan