Minor GC属于JVM垃圾收集的重要内容,而且Java面试也常考,下面重点详解Minor GC的作用与过程@mikechen
Minor GC定义
Minor GC是Java虚拟机进行垃圾回收的一种形式,也被称为年轻代垃圾回收。
Minor GC作用
Minor GC主要是用来清理年轻代的垃圾,Minor GC可以尽早地清理年轻代的垃圾,从而减少Full GC的次数。
Minor GC触发
Minor GC的触发条件通常包括以下两个方面:
1.对象数量达到一定阈值
在Java虚拟机中,年轻代通常被划分为一个Eden区和两个Survivor区。
当对象在Eden区中被分配后,如果Eden区无法容纳所有的对象,则会触发Minor GC。
2.内存空间不足
如果Java虚拟机中的内存空间不足,那么就需要回收一些垃圾对象以释放空间,此时,Java虚拟机可能会触发Minor GC以回收年轻代中的垃圾对象。
Minor GC过程
具体来说,Minor GC的回收过程如下:
- Java虚拟机首先会检查年轻代中的对象,将存活的对象复制到另一个Survivor区中,这个过程被称为复制。
- 如果年轻代中的对象已经占用了Survivor区的一定比例,那么就需要进行Minor GC。
- 在复制过程中,Java虚拟机会将存活的对象复制到另一个Survivor区中,并将原来的Survivor区清空。
- 同时,Java虚拟机会统计对象的年龄,并将年龄大于等于一定阈值的对象移动到老年代中。
- 如果Survivor区无法容纳所有存活的对象,则需要将这些对象直接放入老年代中。
以上就是Minor GC的详解,更多JVM请查看:JVM(Java虚拟机)从0到1全部合集
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》