GC(Gabage Collection)
用于回收堆中的垃圾数据
清理方法
1.标记-清理
对数据标记,然后清理
缺点:容易产生内存碎片
2.标记-整理
对标记后的数据清理,剩下数据前移
缺点:每次清理后数据都要迁移,代价大
3.复制法
把内存分为两个区,A区清理后复制到B区
缺点:内存容量减半
4.实际上的GC
yang区:1/3空间
S0区(幸存):1/10空间
S1区(幸存):1/10空间
E(Eeden)区:8/10空间
翻译为伊甸园,新生命出生的地方,所以用来存储new对象
old区:2/3空间
GC过程:
1.E区满了后,通过标记法,有效数据复制到S0
2.清空S1和E区
3.E区满了后,通过标记法,S0和E区有效数据一起存到S1
4.清空S0和E区
…
5.GC次数满15次后存入old区
6.old满了之后执行fullgc,java程序暂停,全力进行垃圾回收。回收方法主要采用标记-清理/标记-整理方法。
(随手总结一下,欢迎补充和更正)