堆内存垃圾回收流程
- 新建对象,放到Eden区,满后触发Minor GC。
- 存货的对象移动到Survivor的SO区,满后Minor GC。
- SO存活下来的对象移动到S1区,然后S0区空闲。
- S1满后触发Minor GC,再次移动到S0区,然后S1区空闲。
- 反复GC每次对象涨一岁,到达一定次数后(默认15次),进入老年代。
- 当老年代内存不足会触发Full GC,出现STW(Stop-The-World)。
堆空间
- Eden区与两个Survivor区的比例是8:1:1。
- jvm区域总体分两类:
heap区
和非heap区
。 - heap区分为:Eden Spance(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。
- 非heap区分为:Code Cache(代码缓存区)、Perm Gen(永久代)、JVM Stack(java虚拟机栈)、Local Method Stack(本地方法栈)
本文内容转载自小滴课堂。