Java Virtual Machine
Java Virtual Machine (JVM) is a engine that provides runtime environment to drive the Java Code or applications. It converts Java bytecode into machines language. JVM is a part of Java Run Environment (JRE). In this tutorial, we will learn about the various aspects of Java virtual machine in detail.
What is Virtual?
This is not having physical existence
What is Virtual Machine?
- Virtual machine is a simple software program which simulates the functions of a physical machine.
- This is not having physical existence, but which can perform all operations like physical machines.
- Physical machine whatever it is doing, all those things we can able to do on the virtual machine.
- Best example of virtual machine is calculator in computer; it is worked like physical calculator.
All virtual machines categorized in to 2 types
- Hardware based or System based Virtual Machine
- Software based or Application based or process based Virtual Machine
Hardware based virtual machines
Physically only one physical machine is there but several logical machines we can able to create on the single physical machine with strong isolation (worked independently) of each other. This type of virtual machines is called hardware based virtual machines.
Main advantage of hardware based virtual machine is effective utilization of hardware resources. Most of the times these types of virtual machines associated with admin role (System Admin, Server Admin etc). Programmers never associated with the hardware based virtual machines.
Examples of hardware based virtual machines are
- KVM (Kernel Based VM) for Linux systems
- Cloud Computing
Software based virtual machines
These virtual machines acts as run time engine to run a particular programming language applications. Examples of software based virtual machines are
- JVM ( Java Virtual Machine ) acts as runtime engine to run Java applications.
- PVM (Parrot Virtual Machine) acts as runtime engine to run Perl applications
- CLR (Common Language Runtime) acts as runtime engine to run .NET based applications
Let’s understand the internal architecture of Java Virtual Machine (JVM). It contains
- Class Loader Sub System
- Various Memory Areas
- Execution Engine