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

相关推荐
Jelena157795857924 分钟前
电商运营分析数据比价接口实战:多平台价格监控与智能决策系统
java·大数据·数据库
神明不懂浪漫1 小时前
【第五章】Java中的继承与多态
java·开发语言
AI多Agent协作实战派3 小时前
AI多Agent协作系统实战(十七):凌晨4点,我的AI系统在“假装工作“——3个bug同时爆炸的5小时
java·前端·bug
gaolei_eit3 小时前
Java+Ai+vue
java·spring·maven
qq_2518364573 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
LayZhangStrive3 小时前
JUC相关的函数、注解、变量杂记
java·面试·多线程·juc
未秃头的程序猿3 小时前
给公司做了个AI客服Agent,用的Spring AI 1.0,3天上线领导拍板了
java·后端·ai编程
曹牧3 小时前
Eclipse 批量文本替换
java·ide·eclipse
程序员清风4 小时前
OpenAI官方发布最新提示词技巧!
java·后端·面试
一只枫林4 小时前
MySQL内、外连接知识点汇总
java·前端·数据库