Home Java Java Virtual Machine(JVM)
Questions:Ask|Latest


 
 

Share on Google+Share on Google+

Java Virtual Machine(JVM)

Advertisement
JVM is the main component of Java architecture and it is the part of the JRE (Java Runtime Enviroment) .

Java Virtual Machine(JVM)

     

Ques:-What is Java Virtual Machine?

Ans:- Java Virtual Machine

JVM is the main component of Java architecture and it is the part of the JRE (Java Runtime Enviroment) . It provides the cross platform functionality to java. This is a software process that converts the compiled Java byte code to machine code. Byte code is an intermediary language between Java source and the host system. Most programming language like C and Pascal converts the source code into machine code for one specific type of machine as the machine language vary from system to system . Mostly compiler produce code for a particular system but Java compiler produce code for a virtual machine . JVM provides security to java.

The programs written in Java or the source code translated by Java compiler into byte code and after that the JVM converts the byte code into machine code for the computer one wants to run. JVM is a part of Java Run Time Environment that is required by every operating system requires a different JRE .

The architecture of the JVM is given below . This architecture tell us how the JVM works . Firstly we write the simple java program(source code) the java compiler converts the source code into the bytecode , after that JVM reads this bytecode and converts this into the machine code.

Ques 2:- JVM provides portability explain..? 

Ans:- Implementations of java specification for a variety of CPUs and architectures provides the feature of portability. Foremost, without the availability of a JRE for a given environment, it is impossible to run Java software. JVM forms the part of large system i.e. the Java Runtime Environment (JRE). Each operating system and CPU architecture requires a JRE. JRE consists of a set of base classes i.e. an implementation of the base Java API as well as a JVM. The byte code format is same on all platforms as it runs in the same JVM and it is totally independent from the Operating System and the CPU architecture.

JVM is java interpreter as it converts the byte code into machine code for the computer one wants to run. 

JRE consists of a number of classes based on JavaAPI and JVM, and without JRE, it is impossible to run Java. So its portability really made it possible in developing write once and run anywhere software .

How to write First Java program 

Create a simplest java program :

public class MyFirstProgram

{

  public static void main(String arr[] )

   {

    System.out.println(" I am creating my first java program");

  }

}

Save the file with same name as the public class just adding the extension ?.java? e.g.  MyFirstProgram.java.  

Now compile as:

c:\ javac  MyFirstProgram.java

This creates a  class file in  with the same name, This is the bytecode form of Java program. 

Now to execute this code:
c:\ java  MyFirstProgram

OUTPUT 

I am creating my first java program

Ques 3: - Memory Management with JVM ?

Ans:- Memory Management with JVM :- 

the Java language in combination with runtime eliminates the problems of  memory management and corrupted pointers.

  1. There is no explicit allocation of memory in Java, memory is allocated only to objects.

  2. JVM's heap stores all objects created.

  3. JVM ask the operating system for enough memory to run the JVM itself and some free memory for  the  application to create new objects.

  4. If the  free memory area is getting too small, the JVM will ask the operating system for more and if there is no more additional memory available from the operating system, then JVM stops the application and issues the "Out of memory error".

  5. The Java runtime employs a garbage collector to  reclaim the memory occupied by an object.

Ques 4:   Difference amongst JVM Specification, JVM Implementation, JVM Runtime.
Ans:

I. Java Virtual Machine Specification

JVM Specification = Java programming language + Java Virtual Machine architecture +  Java class-file format. 

1. Java Programming Language

Java Programming Language is a developed by Sun MicroSystems.  
Programming languages, like natural language follow the syntactic and semantic rules. Java programming language has some form of written specification of syntax and semantics; which are defined only through the sun's official implementation. Java language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities. Java applications are typically compiled to bytecode which run on any Java Virtual Machine regardless of any computer architecture.

2. Java Virtual Machine architecture

Java Virtual Machine is responsible for interpreting Java bytecode, and translating it into actions or operating system calls. JVM  is the main component of Java architecture and it is  the part of the JRE (Java Runtime Enviroment). The Java Virtual Machine provides a platform-independent way of executing code, by abstracting the differences between operating systems and CPU architectures.

3.  Java class-file format:

Programs written in Java (source code) are translated by Java compiler into byte code and after that the JVM converts the byte code into machine code for the computer one wants to run. This class file format makes java a portable language. 

II  JVM Implementation:

Though implementations of Java Virtual Machines are designed to be compatible, no two JVMs are exactly alike. For example, garbage collection algorithms vary from one JVM to another, so it becomes impossible to know exactly when memory will be reclaimed. The thread scheduling algorithms are different between one JVM and another , so that it is impossible to accurately predict when one thread will be executed over another.

We  have multiple implementations of JVM Specifications defined by Sun Microsystems like:

(i) Java HotSpot VM: developed by Sun Microsystems.
There are two implementations of the Java HotSpot VM:

  • Java HotSpot Client VM
  • Java HotSpot Server VM

The main differences of the two implementations are:

  • The Client VM
     
    • Reduces application start-up time and memory footprint
       
  • The Server VM
     
    • Maximizes peak operating speed.
    • Intended for running long-running server applications.

 (ii) JRockit JVM :  developed by BEA Systems 

  • High performance for server-side applications and optimized for Intel architectures ensuring reliability, scalability, manageability, and flexibility for Java applications.
  • Management Console features to connect multiple running JVMs
  • Available for both Microsoft Windows 2000 and Red Hat Linux Advanced Server OS.

III. JVM Runtime:
  

The Java Virtual Machine is responsible for interpreting Java bytecode, and translating further the obtained code into actions or operating system calls. For example, a request to establish a socket connection to a remote machine will involve an operating system call. Different operating systems handle sockets in different ways - but the programmer doesn't need to worry about such details.  It is the responsibility of the JVM to handle these translations, so that the operating system and CPU architecture on which Java software is running is completely irrelevant to the developer.

JVM Runtime Environment contains the two parts such as:

Java API classes: Java API classes are the predefined classes required for the program compilation and interpretation.

Java Virtual Machine: JVM is also a part of the JRE. The Java Virtual Machine is responsible for interpreting Java bytecode, and translating this into actions or operating system calls .

Implementations of java specification for a variety of CPUs and architectures provides the feature of portability. Foremost, without the availability of a JRE for a given environment, it is impossible to run Java software. JVM forms the part of  large system i.e. the Java Runtime Environment (JRE). Each operating system and CPU architecture requires a  JRE. JRE consists of a set of base classes i.e. an implementation of the base Java API as well as a JVM.

Advertisement

Liked it!  Share this Tutorial


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: December 7, 2008

Ask Questions?    Discuss: Java Virtual Machine(JVM)   View All Comments

Post your Comment


Your Name (*) :
Your Email :
Subject (*):
Your Comment (*):
  Reload Image
 
 
Comments
arvind yadav
June 4, 2011
thanls to rose india

hii.. lot of thanks to rose india private ltv.. you are my god lot of thx....nice work
Linda
June 15, 2013
zLQKTzTGgAcEm

I read your post and wished I'd writetn it
Margarita
June 12, 2013
ZKwunAxONxYTpT

In my case, I already had the jdk ieslaltnd and the error still occurred. To fix the problem I changed the Path environment variable and moved %JAVA_HOME%\bin to the beginning of the Path.
Mali Sandip S.
October 5, 2011
JVM is provide JRE

I like this site I wants to all information about JVM
davinder chauhan
February 1, 2012
threads in jvm

how jvm creates threads?
vickyy
February 25, 2012
java

why java is platform independent??
vickyy
February 25, 2012
java

why java is platform independent??
chiara
February 26, 2012
sun java virtual machine for sumsung galaxy tab

I want to donlowd this program because i want to enter in a plataform but now i can t enter. Please help me!!!!!
ahmed
March 21, 2012
JVM

best to make program running
akhilesh
April 2, 2012
java software

ok
nishant surushe
April 25, 2012
jvm

its a good one !!!!!!!!!
jagdishgaurav
May 5, 2012
javavartul machine

java
ast2341
August 4, 2012
dfa

so nice
ASWINI KUMAR.S
September 12, 2012
about class loader sub system

Q)class loader is part of jvm or jre?
DMCA.com