Friday, 13 October 2017

Details about Java Virtual Machine you mus know.


                             javajava-virtual-machine-5-728
JVM is an specification that provides run-time environment in which java byte-code can be executed.
JVMs are available for many hardware and software platforms (i.e. JVM is platform dependent).

What is JVM

It is:
  1. A specification where working of Java Virtual Machine is specified. But implementation provider is independent to choose the algorithm. Its implementation has been provided by Sun and other companies.
  2. An implementation Its implementation is known as JRE (Java Runtime Environment).
  3. Runtime Instance Whenever you write java command on the command prompt to run the java class, an instance of JVM is created.

What it does

The JVM performs following operation:
  • Loads code
  • Verifies code
  • Executes code
  • Provides runtime environment
JVM provides definitions for the:
  • Memory area
  • Class file format
  • Register set
  • Garbage-collected heap
  • Fatal error reporting etc.

Internal Architecture of JVM

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

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.

Related Posts:

  • Role of Electronic Gates in Building Circuits. Over the 50 years or so that electronics circuit designers have been working on semiconductor-based logic circuits, many designs have been developed for creating logic gates. Because each approach to designing logic … Read More
  • Info. About File Extensions. What is File Extension? A file extension, sometimes called a file suffix or a filename extension, is the character or group of characters after the period that make up an entire file name.The file extension helps an… Read More
  • Now ARTIFICIAL INTELLIGENCE can predict your heart failure. Artificial Intelligence is a branch in computer science in which we train computer to behave like humans. The term was coined in 1956 by John McCarthy at the Massachusetts Institute of Technology.      … Read More
  • Intresting Science Facts that NEVER learnt at School. There is nothing in the world more amazing than the wonders of science and nature unfolding before us. The technology and the biological life we are surrounded by everyday are a proof to the fact that science is far … Read More
  • What is Virtual Private Network (VPN) ? What is a Virtual Private Network (VPN)? A VPN or Virtual Private Network is a network connection that enables you to create a secure connection over the public Internet to private networks at a remote location. With … Read More

0 comments:

Post a Comment