Java面试过程,JVM属于必考题系列:

直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

今天主要谈谈JVM GC的类型和策略,特别是大家经常混淆的Minor GC、Major GC、Full GC,年轻代GC、老年代GC,之间有什么区别和联系。

Minor GC

JVM堆内存被分为两部分:年轻代(Young Generation)和老年代(Old Generation)。

1.年轻代

年轻代是所有新对象产生的地方。当年轻代内存空间被用完时,就会触发垃圾回收。这个垃圾回收叫做Minor GC。年轻代被分为3个部分——Enden区和两个Survivor区。

年轻代空间的要点:

  1. 大多数新建的对象都位于Eden区。

  2. 当Eden区被对象填满时,就会执行Minor GC。并把所有存活下来的对象转移到其中一个survivor区。

  3. Minor GC同样会检查存活下来的对象,并把它们转移到另一个survivor区。这样在一段时间内,总会有一个空的survivor区。

  4. 经过多次GC周期后,仍然存活下来的对象会被转移到年老代内存空间。通常这是在年轻代有资格提升到年老代前通过设定年龄阈值来完成的。

2.年老代

年老代内存里包含了长期存活的对象和经过多次Minor GC后依然存活下来的对象。通常会在老年代内存被占满时进行垃圾回收。

Major GC

老年代的垃圾收集叫做Major GC,Major GC通常是跟full GC是等价的,收集整个GC堆。

Minor GC和Major GC其实就是年轻代GC和年老年GC的俗称。而在Hotspot VM具体实现的收集器:Serial GC, Parallel GC, CMS, G1 GC中,大致可以对应到某个Young GC和Old GC算法组合。

分代GC

针对HotSpot VM的实现,其实GC的准确分类可以分为:

  1. 分代GC

  2. Full GC

以及后续的G1的分区收集本质其实还是一个分代收集器,但是和之前的各类回收器不同,它同时兼顾年轻代和老年代。

分代GC并不收集整个GC堆的模式,而是只专注分代收集

  1. Young GC:只收集年轻代的GC

  2. Old GC:只收集年老代的GC(只有CMS的concurrent collection是这个模式)

  3. Mixed GC:收集整个young gen以及部分old gen的GC(只有G1有这个模式)

Full GC

Full GC定义是相对明确的,就是针对整个新生代、老生代、元空间(metaspace,java8以上版本取代perm gen)的全局范围的GC。

你可能也喜欢:

  1. 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结
  2. 直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解
  3. 阿里P8架构师谈:JVM的内存分配、运行原理、回收算法机制
  4. Java必考题目之JVM面试题目和答案
  5. 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置
  6. 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

直通BAT JVM必考题:Minor GC、Major GC、Full GC的区别相关推荐

  1. 直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

    JVM系列 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势.及使用场景 直通BAT必考题系列:JVM的4种垃圾回收算法.垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM ...

  2. 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景

    直通BAT之JVM系列 直通BAT必考题系列:JVM的4种垃圾回收算法.垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置 今天继续JVM的垃圾回收器详解,如果说垃圾 ...

  3. 直通BAT必考题系列:JVM的4种垃圾回收算法、垃圾回收机制与总结

    BAT必考JVM系列专题 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置  垃圾回收算法 1.标记清除 标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段. 在标记阶段首先通过 ...

  4. 直通BAT必考题系列:深入剖析JVM之G1收集器、及回收流程、与推荐用例

    金三银四马上到了,即将进入面试的高峰期.在BAT面试中,JVM基本都是必考的系列.你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法.垃圾回收机制与总结,以及今天重点谈到的JV ...

  5. 如何开启jvm日志_直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解...

    JVM系列 直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势.及使用场景 直通BAT必考题系列:JVM的4种垃圾回收算法.垃圾回收机制与总结 直通BAT必考题系列:深入详解JVM内存模型与JVM ...

  6. 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

    JVM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃 ...

  7. Minor GC,Major GC,Full GC -- hotspot VM GC讲解

    针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种: Partial GC:并不收集整个GC堆的模式 Young GC:只收集young gen的GC Old GC:只收集old ge ...

  8. GC之Minor/Young/Major GC的区别

    2019独角兽企业重金招聘Python工程师标准>>> 我们平时提及Minor GC.Young GC.Major GC,它们之间的关系是怎样的呢? 如下图1所示,一图胜千言,这是J ...

  9. 阿里三面必问JVM知识点- 使用堆外内存减少Full GC

    问题: 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao.LinkedIn.Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是 ...

最新文章

  1. 基于Springboot实现宠物医院综合管理系统
  2. iOS----------苹果警告
  3. P4768 [NOI2018] 归程(kruskal 重构树)
  4. mysql 经典入门教程_MySQL 经典入门教程
  5. 刷新SOTA!Salesforce提出跨模态对比学习新方法,仅需4M图像数据!
  6. Myeclipse 操作数据库
  7. Stateflow_after计时计数
  8. 微信抢红包python脚本不用手机_用Python实现微信自动化抢红包,再也不用担心抢不到红包了...
  9. 国产特斯拉Model Y已开始向欧洲用户交付
  10. python抓包教程_Python Charles抓包配置实现流程图解
  11. eclipse 矩阵删除行列,也可以矩阵形式编辑
  12. 24.最优布线问题(kruskal算法)
  13. 信息论相对熵的凸性证明
  14. Ubuntu 开机自动运行命令或程序
  15. C个java都是多线程语言对吗_Java里的多线程
  16. 响应式布局的基本介绍及原理
  17. Java8新特性总结
  18. linux锁屏自动登录,Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...
  19. 解决phpstorm运行很卡问题
  20. Ganymed SSH-2(ch.ethz.ssh2)

热门文章

  1. VMWare serve 2.0 进入 RHEL Linux rescue模式
  2. 【Android】Uri和Url和URN
  3. 从网上看到的很搞笑的东西
  4. 聊聊RocksDB Compact
  5. 我们应该这样理解鸿蒙
  6. Android ANR 实例分析
  7. Android Alarm自上而下 调试浅析
  8. linux通过I2C地址查看设备名称
  9. STM32F4 串口DMA
  10. echart 数据点可以加链接吗_地理可视化就这么简单、酷炫,蚂蚁金服AntV 空间数据可视化引擎 L72.0发布...