【退役之重学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 区

相关推荐
ChaHae-In几秒前
MyBatis入门操作
java·mybatis
xcLeigh5 分钟前
Go入门:短变量声明的陷阱与最佳实践
java·redis·golang·教程·变量
青山木11 分钟前
Hot 100 --- 最小栈
java·数据结构·算法·leetcode
疯狂打码的少年15 分钟前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
szephyr20 分钟前
腾讯云 ADP 智能体的 Skills 版本回滚总是回到旧配置,是缓存没清还是版本管理没开?
java·缓存·腾讯云
云烟成雨TD24 分钟前
Micrometer 系列【39】链路追踪:入门案例 | 环境准备
java·云原生·链路追踪
chuan.bai26 分钟前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
147API35 分钟前
Python批量生成蒸馏数据,并发、重试、幂等和断点续跑
开发语言·jvm·python
9523639 分钟前
Sentinel
java·后端·spring·sentinel·springcloud
阿pin44 分钟前
Java随笔-JDK7 HashMap头插法为何能导致死循环?
java·开发语言·hashmap