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

相关推荐
E_ICEBLUE3 分钟前
【2026 最新教程】Java 自动化提取 PDF 表格:从文本到 Excel/CSV 的全场景实现
java·pdf·自动化
C雨后彩虹5 分钟前
无向图染色
java·数据结构·算法·华为·面试
J_HelloWorld6 分钟前
缺页中断:Java高性能存储的隐形推手
java·缺页中断
一代明君Kevin学长11 分钟前
记录一个上手即用的Spring全局返回值&异常处理框架
java·网络·python·spring
悟空码字15 分钟前
SpringBoot整合MyBatis-Flex保姆级教程,看完就能上手!
java·spring boot·后端
爬山算法16 分钟前
Hibernate(43)Hibernate中的级联删除如何实现?
java·python·hibernate
J_liaty17 分钟前
Java工程师的JVM入门教程:从零理解Java虚拟机
java·开发语言·jvm
qq_25005686822 分钟前
SpringBoot 引入 smart-doc 接口文档插件
java·spring boot·后端
珠穆峰26 分钟前
linux清理缓存命令“echo 3 > /proc/sys/vm/drop_caches”
java·linux·缓存
掉头发的王富贵29 分钟前
【2025年终总结】对象有了,工作没了
java·后端·年终总结