---
title: "Internal Details of JVM( Java Virtual Machine)"  
description: "JVMs are available for many hardware and software platforms (i.e.JVM is plateform dependent). JVM (Java Virtual Machine) is an abstract machine. It is"  
author: "ANkita gupta"  
published: 2015-05-20  
updated: 2015-05-20  
canonical: https://www.mindstick.com/blog/10893/internal-details-of-jvm-java-virtual-machine  
category: "java"  
tags: ["java"]  
reading_time: 3 minutes  

---

# Internal Details of JVM( Java Virtual Machine)

| **JVM** (Java [Virtual Machine](https://www.mindstick.com/forum/157900/what-is-a-virtual-machine-and-how-does-it-work))\ ## JVMs are available for many hardware and software platforms (i.e.JVM is plateform dependent). JVM (Java Virtual Machine) is an abstract machine. It is a specification that provides runtime environment in which java bytecode can be executed. ### What is JVM? It is: 1. **A specification** where working of Java Virtual Machine is specified. But [implementation](https://www.mindstick.com/forum/33764/how-to-implementation-of-class-in-c-sharp) 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](https://answers.mindstick.com/qa/35703/ricky-ponting-is-also-known-as-what) JRE (Java Runtime Environment). 3. **Runtime Instance** Whenever you write java command on the [command prompt](https://answers.mindstick.com/qa/51716/how-to-make-bootable-pendrive-using-cmd-windows-command-prompt) to run the java class, and 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](https://www.mindstick.com/forum/382/how-to-import-and-export-data-in-sql-server-from-different-file-format) - Register set - Garbage-collected heap - [Fatal error](https://answers.mindstick.com/qa/94996/how-do-i-fix-a-fatal-error-in-windows-10) reporting etc. --- ### Internal Architecture of JVM \| Let's understand the internal architecture of JVM. It contains classloader, memory area, execution engine etc. \| \| --- \| ![Jvm Internal](http://www.javatpoint.com/images/jvminternal.JPG) \ \ ### 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](https://www.mindstick.com/forum/157912/what-is-regularization-how-can-it-be-used-to-improve-the-performance-of-a-machine-learning-model).JIT compiles parts of the [byte code](https://www.mindstick.com/interview/22775/what-is-byte-code-verifier) that have similar [functionality](https://www.mindstick.com/blog/136/using-watermark-functionality-in-textbox-by-jquery) 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. \| |
| --- |
| Let's understand the internal architecture of JVM. It contains classloader, memory area, execution engine etc. |
| 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. |
| 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](https://www.mindstick.com/forum/157912/what-is-regularization-how-can-it-be-used-to-improve-the-performance-of-a-machine-learning-model).JIT compiles parts of the [byte code](https://www.mindstick.com/interview/22775/what-is-byte-code-verifier) that have similar [functionality](https://www.mindstick.com/blog/136/using-watermark-functionality-in-textbox-by-jquery) 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. |

---

Original Source: https://www.mindstick.com/blog/10893/internal-details-of-jvm-java-virtual-machine

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
