Skip to main content

JAVA VIRTUAL MACHINE

Java Programming



Java Virtual Machine (JVM) is  the heart of  entire  Java program execution process. First of all, the .java program is converted into a .class file consisting of byte code instructions by the java compiler at the time of compilation. Remember, this java compiler is outside the JVM. This .class file is given to the JVM.

                       Following figure shows the architecture of Java Virtual Machine



Method Area  // Class Area:

Class area is the logical memory block of JVM, which holds information about classes and interfaces. Static variables are treated as class variables, because they take memory from method area. The size of the method area shrinks and expands according to the size of the application.

 Heap:

In Java when an object or an array is created, memory is allocated to them from heap. The JVM through the use of new operator allocates memory from the heap for an object. The JVM has a daemon thread known as Garbage Collector whose task is to free those object from heap whose reference is not alive in stack.

 JVM Language Stack || JAVA Stack:

Method  code  are  stored  on Method  area. But  while  running  a method,  it needs some more memory  to store  the data and results. This memory is allotted on Java Stacks.  So,  Java  Stacks  are  memory  area  where  Java  methods  are  executed.

PC  (Program  Counter)  registers: 

It keep track of the sequence of execution of the program. These are the registers (memory areas), which contain memory address of the instructions of the methods or PC register or program counter register holds the addresses of the instructions to be executed next.

 Native Method  Stacks:

When a Java application invokes a native method, that application does not only use  Java  Stacks but also uses the native method stack for the execution of native methods (for  example  C/C++  functions).  To execute the native methods, generally native method libraries (for example C/C++ header files) are required. The libraries required for the execution of native methods are available to the Java Virtual Machine through Java Native Interface.

Execution  Engine:

 contains  interpreter  and  JIT  compiler  which  translates  the  byte  code instructions  into  machine  language  which  are  executed  by  the  microprocessor.  Hot  spot (loops/iterations) is the area in .class file i.e. executed by JIT compiler. JVM will identify the Hot spots  in  the  .class  files  and  it will  give  it  to  JIT  compiler where  the  normal  instructions  and statements of Java program are executed by the Java interpreter.







Comments

Popular posts from this blog

DIFFRENCE BETWEEN JAVA AND C++

Java Programming JAVA :- 1. Java is true Object oriented language. 2. Java does not support operator overloading. 3. It supports labels with loops and statement blocks . 4. Java does not have template classes as in C++. 5. Java compiled into byte code for the Java Virtual Machine. The source code is independent   on operating system. 6. Java does not support multiple inheritance of classes but it supports interface. 7. Runs in a protected virtual machine. 8 . Java does not support global variable. Every variable should declare in class. 9.  Java does not use pointer. 10. It Strictly enforces an object oriented Programming paradigm. C++ :- 1. C++ is basically C with Object-oriented extension. 2. C++ supports operator overloading. 3. It supports go to statement. 4. C++ has template classes. 5. Source code can be written to be platform independent C++ typically compiled into machine code. 6. C++ supports multiple inheritance ...