1、没有运行任何代码时GC:
2、
add 7M
add 512k
add 512k
2、存储大对象,若新生代存放不下,老年代可以存放的下,则直接存放在老年代,也不会触发垃圾回收
add 8M
add 16M:先触发新生代回收、再做老年代新生代回收;两次努力做完之后还不行,则报溢出
https://blog.csdn.net/a303549861/article/details/88744333
https://www.jianshu.com/p/e5d2435a9122
垃圾回收(Garbage Collection,简写为 GC)
Serial、SerialOld、ParNew、ParallelScavenger、ParallelOld、CMS(ConcurrentMarkSweep)、G1(GarbageFirst)
复制(新、单)、标记整理(老、单)、复制(新、多)、复制(新、多)、标记整理(老、多)、标记整理(初始标记、并发标记、重新标记、清除)、
宏观标记整理(局部区,复制)(初始标记、并发标记、最终标记、筛选清除)
Serial + SerialOld
Serial + CMS
ParNew + CMS
ParNew + SerialOld
ParallelScavenger + ParallelOld
CMS + SerialOld
G1
JVM 截止目前为止,有以下十种垃圾回收器,左边6种为"物理分代模型";G1为"物理分区&逻辑分代";ZGC、Shenandoah为"物理分区模型";
左边6种垃圾回收器,其中上面三种工作在年期代,下面三种工作在老年代,虚线相连的两个垃圾回收器可以相互配合使用。
除GC外:
1、年轻代、老年代是独立且连续的内存块;
2、年轻代收集使用单eden、双survivor进行复制算法;
3、老年代收集必须扫描整个老年代区域;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。