前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jdk(4) - JVM内存

jdk(4) - JVM内存

作者头像
惊羽-布壳儿
发布2022-06-15 21:42:40
6230
发布2022-06-15 21:42:40
举报
文章被收录于专栏:惊羽-布壳儿

1. JVM 运行时内存划分

1.1 整体分布

主要分为 :

jvm 内存

计数器 : 利用自增特性,主持线程顺次执行栈中的指令; JVM栈 : 由栈帧组成,每个栈帧包含当前方法的入口,返回信息,参数和变量,基础类型和对象的引用等; 本地方法栈 : 主要维护JNI相关的信息 堆 : 用于存放程序运行中创建的对象数据;

本地内存

元数据区 : 用于存放永久对象的区域; 直接内存 : 用于存放堆外内存,直接使用操作系统本身内存的区域(如 NIO部分类库实例);

图中,绿色为线程私有的,换色则属线程公用;

1.2 堆内存划分
年轻代

Eden : 新对象的存放之地;占用内存达到阈值后会触发youngGC,每经历一次youngGC存活下来的对象都会涨一岁,岁数到达年龄阈值(默认16岁)后会进入年老代; servivor0 : 幸存区,用于youngGC时,临时存放幸存的对象; servivor1 : 同servivor0; servivor0, servivor1 配合Eden,使得youngGC时,不产生内存碎片,同时保证了新生内存都在Eden区; 参考文章 : 为什么JVM新生代中有两个survivor?

年老代

用于存放高龄对象,占满后会引发fullGC;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. JVM 运行时内存划分
    • 1.1 整体分布
      • jvm 内存
      • 本地内存
    • 1.2 堆内存划分
      • 年轻代
      • 年老代
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档