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 ()

相关推荐
做个文艺程序员3 小时前
第04篇:K8s 弹性伸缩实战:HPA、VPA、KEDA——Java SaaS 应对流量洪峰的秘密武器
java·容器·kubernetes·弹性伸缩·自动扩容·ai 推理伸缩
weelinking6 小时前
【产品】12_接入数据库——让数据永久保存
jvm·数据库·python·react.js·数据挖掘·前端框架·产品经理
石山代码6 小时前
ArrayList / HashMap / ConcurrentHashMap
java·开发语言
AskHarries8 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
gsls2008088 小时前
JVM 堆内存参数 & Docker 容器适配,一次讲清楚
jvm·docker·容器
daidaidaiyu8 小时前
ThingsBoard 规则链系统源码分析和自定义定时器
java
小毛驴8509 小时前
spring-boot-maven-plugin,maven-compiler-plugin 功能对比
java·python·maven
csdn_aspnet9 小时前
Java 霍尔分区算法(Hoare‘s Partition Algorithm)
java·开发语言·算法
霸道流氓气质9 小时前
通义灵码 IDEA 插件完全使用指南
java·ide·intellij-idea
诸葛务农9 小时前
道路行驶条件下电动汽车永磁电机的有效使用寿命及永磁体的失效和回收再利用(下)
java·开发语言·算法