news 2026/9/26 13:25:19

JVM内存结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JVM内存结构

程序计数器

  • 为每个线程私有
  • 指向线程对应程序的当前执行地址,指向虚拟机栈中对应栈帧
  • 如果执行方法为Native方法,程序计数器为null
  • 没有OutOfMemory和StackOverflow异常

Java虚拟机栈

  • 为每个线程私有
  • 虚拟机栈的元素为栈帧,每个方法在执行时创建一个栈帧,因此一对一关系
  • 栈帧存储当前方法的局部变量表,操作数栈,方法出口等信息
  • 有StackOverflow和OutOfMemory异常

本地方法栈

  • 为每个线程私有
  • 为Native方法服务
  • 每个Native方法执行时创建一个本地方法栈帧,来存储局部变量等信息
  • 有StackOverflow和OutOfMemory异常

Java堆

  • 被所有进程共享
  • 存放对象实例(包括成员变量),存放数组,存放静态变量
  • 堆为垃圾回收GC管理的主要区域
  • 根据GC逻辑,堆分为 新生代 和 老生代,新生代细分 Eden区,Survivor区
  • Eden区大多数对象刚出生的地方,Survivor区为经历一次或多次GC仍存活的对象的地方,老生代为更长生命周期的对象
  • GC会根据各个区域(新生代区域的Eden和Survivor,老生代区域)的占满情况来进行清理,在Eden或Survivor占满时,会执行MinorGC,清理新生代,然后存活下来的进行晋升,如Eden晋升到Survivor,Survivor晋升到老生代。在老生代空间不足,或元空间空间不足等时,会触发MajorGc或FullGC,对整个java堆全面清理

元空间

  • 存储类描述,以及类中的成员变量描述,成员方法描述,运行时常量池
  • 创建对象需要元空间对应的类描述
  • 有OutOfMemory异常(类太多)
运行时:内存区域的联动过程

当我们执行以下这行代码时,JVM 内部三个区域是如何配合的?

Useruser=newUser();
  1. 元空间 (Metaspace):
    • JVM 首先检查元空间中是否已经加载了User类。
    • 如果没有,加载器会把User的结构信息(如上述表格内容)填入元空间。
    • 它是“图纸”:JVM 根据元空间里的字段定义,算出创建一个User对象需要占多少字节。
  2. Java 堆 (Heap):
    • JVM 根据“图纸”计算的大小,在堆中分配一块内存。
    • 它是“实物”:这里存放真正的name="张三"、age=25等数据。
  3. 虚拟机栈 (Stack):
    • 在当前线程的栈帧中,局部变量表里存入一个变量user。
    • 它是“指针”:user的值就是堆中那个User实例的物理内存地址。

直接内存

  • 操作系统级的本地内存,由操作系统管理,不属于JVM数据区的一部分
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 9:41:04

快速部署StructBERT语义相似度模型:GPU加速,可视化结果展示

快速部署StructBERT语义相似度模型:GPU加速,可视化结果展示 1. 工具简介与核心价值 你是否遇到过需要快速判断两段中文文本是否表达相同意思的场景?比如对比用户反馈是否重复、检查文章是否存在抄袭、或者评估机器翻译的质量。传统方法要么…

作者头像 李华
网站建设 2026/8/23 9:41:04

庐山派K230软件开发第二篇——GPIO控制RGB灯效进阶

1. RGB灯效进阶开发基础 庐山派K230开发板的GPIO控制RGB灯效,远不止简单的点亮和熄灭。作为开发者,我们需要掌握更高级的控制技巧,才能充分发挥这块开发板的潜力。先来看看基础原理:K230开发板上的RGB灯采用共阳极设计&#xff0c…

作者头像 李华
网站建设 2026/9/26 13:25:09

嵌入式网络15个核心概念辨析与硬件级实践

1. 网络基础概念辨析:嵌入式系统工程师必须厘清的15个核心术语在嵌入式网络设备开发实践中,工程师常面临一个看似基础却极易混淆的困境:当调试以太网PHY寄存器时无法定位CRS信号异常,当优化TCP连接建立时间时对RTT构成要素缺乏量化…

作者头像 李华
网站建设 2026/8/23 9:41:05

【STM32】基于RFID读卡器的门禁系统设计与实现

1. RFID门禁系统设计概述 每次进出小区大门时,那个"嘀"一声就能自动抬杆的系统,你是不是也好奇过它的工作原理?这背后就是RFID技术在发挥作用。基于STM32和RFID读卡器的门禁系统,可以说是物联网时代最典型的应用场景之一…

作者头像 李华
网站建设 2026/8/23 9:41:05

2023年新算法实战:用Python手搓长鼻浣熊优化(COA)完整代码教程

2023年新算法实战:用Python手搓长鼻浣熊优化(COA)完整代码教程 在智能优化算法领域,每年都会涌现出大量受自然界启发的创新方法。2023年初,一种名为长鼻浣熊优化算法(Coati Optimization Algorithm, COA)的新方法在中科…

作者头像 李华