第一次GC:

在不断创建对象的过程中,当Eden区域被占满,此时会开始做Young GC也叫Minor GC

1)第一次GC时Survivous中S0区和S1区都为空,将其中一个作为To Survivous(用来存储Eden区域执行GC后不能被回收的对象)。比如:将S0作为To Survivous,则S1为From Survivous。

2)将Eden区域经过GC不能被回收的对象存储到To Survivous(S0)区域(此时Eden区域的内存会在垃圾回收的过程中全部释放),但如果To Survivous(S0)被占满了,Eden中剩下不能被回收对象只能存放到Old区域。

3)将Eden区域空间清空,此时From Survivous区域(S1)也是空的。

4)S0与S1互相切换标签,S0为From Survivous,S1为To Survivous。

第二次GC:

当第二次Eden区域被占满时,此时开始做GC

1)将Eden和From Survivous(S0)中经过GC未被回收的对象迁移到To Survivous(S1),如果To Survious(S1)区放不下,将剩下的不能回收对象放入Old区域;

2)将Eden区域空间和From Survivous(S0)区域空间清空;

3)S0与S1互相切换标签,S0为To Survivous,S1为From Survivous。

第三次,第四次一次类推,始终保证S0和S1有一个空的,用来存储临时对象,用于交换空间的目的。反反复复多次没有被淘汰的对象,将会被放入Old区域中,默认15次(由参数--XX:MaxTenuringThreshold=15 决定)。

最新文章

  1. IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
  2. 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
  3. C#读写SQL Server数据库图片
  4. 解决:Unknown table engine 'InnoDB'
  5. VC 中 UpdateData() 函数的使用
  6. 1020: 部分A+B
  7. IOS UIActivityIndicatorView 等待指示器
  8. 转载Expression Tree揭秘
  9. Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
  10. 1_使用Java文件的并发写
  11. c#SocketIO4NetClient访问node js
  12. iOS企业版APP分发上线流程和注意事项
  13. 浏览器兼容之Chrome浏览器: -webkit-text-size-adjust: none;
  14. 201521123049 《JAVA程序设计》 第5周学习总结
  15. proxy.go 源码阅读
  16. react native 中实现个别页面禁止截屏
  17. php获取两个时间戳之间相隔多少天多少小时多少分多少秒
  18. solr4.7配置(ik-analyzer)
  19. Android帧布局<TabHost>标签
  20. Vivado下生成及烧写MCS文件

热门文章

  1. SpringBoot简单快速入门操作
  2. 洛谷 P3201 梦幻布丁 题解
  3. 【iOS逆向】某营业厅算法分析
  4. C温故补缺(二):volatile
  5. 数电第四周周结_by_yc
  6. uni 结合vuex 编写动态全局配置变量 this.baseurl
  7. 学习ASP.NET Core Blazor编程系列十五——查询
  8. BFS算法套路框架
  9. 【每日一题】【模拟】2021年11月11日--LRU 缓存机制
  10. 项目完成小结 - Django-React-Docker-Swag部署配置