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

相关推荐
码上有光4 分钟前
c++: 继承(下)
android·java·c++·多继承·菱形继承·虚继承
JAVA9654 分钟前
JAVA面试-并发篇 02-synchronized 锁可以重入吗
java·面试
RemainderTime9 分钟前
Spring Boot脚手架集成Sa-Token实现生产级RBAC权限管理
java·spring boot·后端·系统架构
韦胖漫谈IT11 分钟前
选语言不是站队,是选适合问题的工具
java·python·ai·rust·go·技术落地
lpd_lt14 分钟前
AI生成Spring Boot + Vue 3 + MySQL + MyBatis-Plus的项目实战
java·spring boot·vue·ai编程
JAVA面经实录91714 分钟前
Kafka 全套学习知识手册
java·kafka
源图客18 分钟前
【亚马逊 SP-API 实战】Java 批量创建变体 Listing(父商品 + 子变体 + 独立图片)完整教程(亲测可用)
java·大数据·python
茫忙然19 分钟前
Claude Code 接入 DeepSeek 或 多模型 教程(Linux)
java·linux·数据库
兰令水1 小时前
leecodecode【反前后指针】【2026.5.31打卡-java版本】
java·开发语言
AI人工智能+电脑小能手9 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试