JRE, JDK & JVM

JRE, JDK & JVM


JRE
The Java Runtime Environment (JRE) is part of the Java Development Kit (JDK). It contains set of libraries and tools for developing java application. The Java Runtime Environment provides the minimum requirements for executing a Java application. It physically exists. It contains set of libraries + other files that JVM uses at runtime.







JDK
The Java Development Kit (JDK) is primary components. It physically exists. It is collection of programming tools and JRE, JVM.










Jvm InternalJVM
JVM (Java Virtual Machine) is a software. It is a specification that provides runtime environment in which java bytecode can be executed. It not physically exists.

JVMs are not same for all hardware and software, for example for window os JVM is different and for Linux VJM is different. JVM, JRE and JDK are platform dependent because configuration of each OS differs. But, Java is platform independent.

Operation of JVM
JVM mainly performs following operations.
  • Allocating sufficient memory space for the class properties.
  • Provides runtime environment in which java bytecode can be executed
  • Converting byte code instruction into machine level instruction.
JVM is separately available for every Operating System while installing java software so thatJVM is platform dependent.
Note: Java is platform Independent but JVM is platform dependent because every Operating system have different-different JVM which is install along with JDK Software.

Internal Architecture of JVM
Let's understand the internal architecture of JVM. It contains classloader, memory area, execution engine etc.


1) Classloader:
Classloader is a subsystem of JVM that is used to load class files.


2) Class(Method) Area:
Class(Method) Area stores per-class structures such as the runtime constant pool, field and method data, the code for methods.


3) Heap:
It is the runtime data area in which objects are allocated.


4) Stack:
Java Stack stores frames.It holds local variables and partial results, and plays a part in method invocation and return.
Each thread has a private JVM stack, created at the same time as thread.
A new frame is created each time a method is invoked. A frame is destroyed when its method invocation completes.
5) Program Counter Register:
PC (program counter) register. It contains the address of the Java virtual machine instruction currently being executed.


6) Native Method Stack:
It contains all the native methods used in the application.


7) Execution Engine:
It contains:
1) A virtual processor
2) Interpreter:Read bytecode stream then execute the instructions.
3) Just-In-Time(JIT) compiler:It is used to improve the performance.JIT compiles parts of the byte code that have similar functionality at the same time, and hence reduces the amount of time needed for compilation.Here the term ?compiler? refers to a translator from the instruction set of a Java virtual machine (JVM) to the instruction set of a specific CPU.

1 comment:

  1. Looking for best Selenium Training in Chennai? CREDO SYSTEMZ is the No 1 Selenium Training in Velachery offering professional training for both freshers and professionals in Manual, automation testing training like Selenium, QTP/UFT and Performance Testing Training Courses like LoadRunner and JMeter. More Details: Selenium Training course fees details.

    More Info: Best Selenium Training Institute in Chennai

    ReplyDelete