The building blocks of Java

Software Development Environment- [JDK,JRE,JVM,JIT]

Rupam Jha
JavaMadeTranquil
Published in
3 min readOct 1, 2020

--

Hello Comrades,

Before we begin with today’s article I would recommend you to take a quick look at the previous article so that we as a team are on the same page of knowledge grasping today!

Assuming that you have revisited the previous article, lets begin with todays’ topic.

A Software Development Environment is basically a collection of hardware and software tool that helps us build any software systems. Java is both a programming language as well as a platform.

JVM:

Starting with introduction to JVM, Java Virtual Machine is an abstract[virtual] machine that enables us to run any Java program. As mentioned in the previous article, Java is a platform independent language, so when we run our program, the Javac compiler firstly compiles our Java code to bytecode and then JVM translates these bytecodes to native machine code and these machine codes will then be executed on the machines, thus making Java platform independent. JVM is responsible for calling the main() method of any Java code.

A Java code is written usually for JVM and not for the actual machines. JVM is termed as “virtual” because it is generally implemented in a software on top of a real hardware platform and Operating System. The Java program can be run on any system where a JVM is available. JVM basically acts as the intermediary layer and handles all the Operating System specific details. JVM offers many benefits such as memory management and performance optimizations.

The JVM performs certain main tasks such as, it loads code, verifies it, executes it and provides a runtime environment.

Note: Next article will be assigned to a detailed description on JVM Architecture.

JRE:

The Java Runtime Environment is a software package that provides us with Java class libraries, along with JVM and other components to run the applications written in Java programming.It is a part of Java Development Kit [JDK]. It is considered as an implementation of JVM. It runs on top of the computer’s Operating System. The JRE is an on-disk system that takes our Java code, combines it with the necessary libraries, and starts the JVM to execute the code.

JRE includes deployment technologies [Java Plug-in], user interface toolkit[Java 2D], Integration libraries[ JDBC,JNDI], long and util libraries[Java Archive JAR].

JDK:

The Java Development Kit provides the foundation on which all the applications are built. It contains variety of tools and utilities that help us develop, package, monitor and deploy the applications. JDK includes javac[Java compiler], rmic[Remote Method Invocation], jar[Java Archive], javadoc[Java Documentation].

The distinction between the JDK and JRE is that JDK is a package of tools for developing Java -based software where as JRE is a package of tools for running the Java code.

JDK requires JRE as running the program is a part of developing them. To say it precisely, JDK is an implementation of Java platform specification.

JIT:

The Just In Time compiler is a essential part of JRE, responsible for performance optimization. Just In Time Compilation is a way of executing code that includes compilation during execution of code i.e. at runtime rather than performing it prior to the execution. It improves the performance of any Java application by compiling platform- neutral Java bytecode to native code at runtime. JIT gets activated when a method is invoked.

pic credit : google

That is it from my end on this article , for any further clarifications or rectifications needed, please leave in a comment.

Peace Out!

Rupam Pawan Jha

--

--