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

相关推荐
鹿角片ljp14 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法
java·数据结构·算法
泡海椒15 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
景熙552317 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wno70417 小时前
Spring Security权限控制
java·python·spring
杨运交18 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow18 小时前
CountDownLatch in Java
java
SL_staff18 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品
传奇开心果编程19 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
SL_staff19 小时前
财务系统慎用低代码?从数据模型闭环看合规落地的技术实践
java·低代码·全栈