【退役之重学Java】JVM 内存模型和 GC 简述

一、JVM 内存

  1. 栈区:存放所有最直接变量,如果是基本数据类型,则存放其值,如果是引用类型,则存放其地址值
  2. 堆区:对象的存放区域,如果有对象的属性还是一个对象,那么会采用链式存储(一对多,更像是树式存储)
  3. 方法区(元空间):存放全局数据信息,比如静态变量,方法字节码,类的结构信息,运行时常量池等
  4. 本地方法栈:C++ (不用在意)
  5. 程序计数器:程序运行的位置 (不用在意)

二、GC

堆空间的分区:

young

S0

S1

Edge

old
S0 和 S1 交替使用,比如,S0 和 Edge 一起做完一次 GC,就把存活的对象复制到S1,并清空 S0 和 Edge,下一次GC 就用 S1 和 Edge 做,把存活下来的对象复制到 S0,并清空 S1 和 Edge

存活六次以上young GC 的对象放到 old 区

相关推荐
IT 行者1 小时前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
(Charon)1 小时前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
Yeats_Liao2 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
JiaHao汤2 小时前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
色空大师2 小时前
【debug调试详解-idea】
java·ide·intellij-idea·调试·远程调试
程序猿阿越2 小时前
AutoMQ源码(一)读、写、Compaction
java·后端·源码
ywl4708120873 小时前
jwt生产token,简单版helloworld
java·数据库·spring
未若君雅裁3 小时前
生产问题排查与性能瓶颈定位:日志、监控、链路追踪、压测与Arthas
java·web安全
宸丶一3 小时前
Day 13:持久化记忆 - 让 Agent 拥有长期记忆
jvm·python·ai
器灵科技3 小时前
AI视频工具实测:Seedance/可灵/HappyHorse谁最能打?
java·运维·数据库·人工智能·github