Friday, August 28, 2020

Difference between JVM, JIR, JRE, and JDK in Java

JRE, JVM, and JDK are three terms you often heard in conjunction with Java programming language, and most people either confuse them or think they all are the same. In this Java article, you will learn what is Java Run-time (JRE), what is Java Virtual Machine (JVM) and what is Java Development Kit (JDK) along with Just in Time compiler or JIT. Once you know what JRE, JVM or JDK means you can differentiate them easily by yourself.

JRE, JVM, JIR, and JDK in Java Programming language


Now, let’s understand all JRE (Java Runtime Environment), JVM (Java Virtual Machine), and JDK (Java Development Kit) in detail to learn the differences between them.

1. Java Runtime Environment (JRE)


Java is everywhere in the browser, in mobile, in TV, or in set-top boxes, and if you are into Java programming language than you know that Java code which is bundled in JAR (Java archive) file requires Java virtual machine JVM to execute it.

Now JVM is an executable or program like any other program and you can install that into your machine. You have seen browsers often suggesting download JRE run a Java Applet downloaded from the Internet.

Various versions of JRE is available in java.oracle.com and most of the user who just wants to execute Java program inside a browser or standalone downloads JRE. All browsers including Internet Explorer, Firefox, and Chrome can work with JRE.

2. Java Virtual Machine (JVM)


When you download JRE and install on your machine you got all the code required to create JVM. Java Virtual Machine is get created when you run a java program using java commands like java HelloWorld.

JVM is responsible for converting byte code into machine-specific code and that’s why you have different JVM for Windows, Linux, or Solaris but one JAR can run on all this operating system.

Java Virtual machine is at the heart of Java programming language and provides several features to Java programmers including Memory Management and Garbage Collection, Security, and other system-level services.

Java Virtual Machine can be customized like we can specify starting memory or maximum memory of heap size located inside JVM at the time of JVM creation.

If we supplied an invalid argument to java command it may refuse to create Java Virtual Machine by saying “failed to create Java virtual machine: invalid argument“.

It’s one of the advanced courses for Java programmers to learn more about JVM, Performance, and Memory management including troubleshooting memory leaks in Java.

Oracle Java, JVM, JIR, JRE, JDK, Oracle Java Exam Prep, Oracle Java Learning

3. Java Development Kit (JDK)


JDK is also loosely referred to as JRE but its lot more than JRE and it provides all the tools and executable require to compile debug and execute Java Program. Just like JRE, JDK is also platform-specific and you need to use separate installers for installing JDK on Linux and Windows. 

The current version of JDK is 1.7 which is also referred to as Java7 and it contains javac (java compiler) based on programming rules of Java7 and Java which can execute java7 code with new features like String in Switch, fork-join framework or Automatic Resource Management. 

When you install JDK, the installation folder is often referred to as JAVA_HOME. All binaries are located inside JAVA_HOME/bin which includes javac, java, and other binaries and they must be in your system PATH in order to compile and execute Java programs.

4. Difference between JRE, JDK, and JVM


In short, there are few differences between JRE, JDK, and JVM:

1)  JRE and JDK come as installers while JVM is bundled with them.

2)  JRE only contain environment to execute java program but doesn’t contain other tools for compiling java program.

3)  JVM comes along with both JDK and JRE and created when you execute the Java program by giving the “java” command.

4. Just in Time Compiler (JIT)


Initially, Java has been accused of poor performance because it’s both compiles and interprets instruction. Since compilation or Java file to class file is independent of the execution of Java program do not confuse. 

Here compilation word is used for byte code to machine instruction translation. JIT is an advanced part of Java Virtual machine which optimizes byte code to machine instruction conversion part by compiling similar byte codes at the same time and thus reducing overall execution time. 

JIT is part of Java Virtual Machine and also performs several other optimizations such as in-lining function.

Oracle Java, JVM, JIR, JRE, JDK, Oracle Java Exam Prep, Oracle Java Learning

That’s all on JRE, JDK and Java Virtual machine and difference between them. Though they look similar they are different and having a clear idea of JVM, JIT or JDK helps in java programming.

Source: javacodegeeks.com

Related Posts

0 comments:

Post a Comment