JVM--Hotspot Architecture 详解

一、Java Virtual Machine (JVM)概述

Java Virtual Machine 虚拟机 (JVM) 是一种抽象的计算机。JVM本身也是一个程序,但是对于编写在其中执行的程序来说,它看起来像一台机器。对于特定的操作系统,每个 JVM 实现都将 Java 编程指令转换为在本地操作系统上运行的指令和命令。这样,Java程序就实现了平台独立性。第一个JVM的实现就是Hotspot

二、Hotspot Architecture

The HotSpot JVM的逻辑结构图如下:

Hotspot虚机机主要的组件包括the classloader(类加载器), the runtime data areas(运行时数据区), and the execution(执行引擎)

1、 the runtime data areas(运行时数据区)

1、1 The pc Register (program counter registers )程序计数寄存器

JVM可以支持同时多线程运行,每一个JVM线程都会有它自己的pc Register ,pc Register 中存储的其实就是当前被执行的代码的地址。如果一个方法(method)不是native方法,那么pc Register 中存储的其实就是当前被执行的代码的地址,如果一个方法(method)是native方法,那么pc Register 是无值的

1、2 Heap(堆)

在JVM中,有一个区域被叫做Heap(堆),该区域被所有的JVM线程所共有,所有的java类的实例对象( class instances)和数组(arrays)的内存申请都会被分配(allocated)在这个区域中。

1、3 Java Virtual Machine Stacks(栈)

每一个JVM线程都会有一个私有的栈(private Java Virtual Machine stack),与该线程一同被创建出来。

1、4 Method Area (方法区)

在JVM中,有一个区域被叫做Method Area(方法区),该区域被所有的JVM线程所共有。

1、5 Run-Time Constant Pool ()

相关推荐
唐青枫1 小时前
Java Spring WebFlux 实战指南:用 Mono、Flux 和 WebClient 写响应式接口
java·spring
小bo波14 小时前
使用Thread子类创建线程 VS 使用Runnable接口创建线程的区别
java·多线程·thread·并发编程·runnable
SamDeepThinking15 小时前
高并发场景下,CompletableFuture与ForkJoinPool该如何取舍?
java·后端·面试
张不才18 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
shepherd11119 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构
plainGeekDev1 天前
单例模式 → object 声明
android·java·kotlin
用户298698530141 天前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing1 天前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯1 天前
GoF设计模式——策略模式
java·后端·spring·设计模式