19
2020
10

垃圾收集算法有哪些

标记-清除算法:首先标记出所有的对象,标记完成后统一回收

(1效率问题:标记和清除两个过程效率都不高

(2空间问题:产生碎片

复制算法:将内存划分为一块较大的Eden空间(80%)和两块较小的Survivor空间(10%),每次使用Eden和其中的一块Survivor,当回收时,将两者中存活的对象一次性复制到另一块Survivor,并清空刚才用到的空间,如果这块Survivor不够,则启用分配担保机制,将多处的对象存储再老年代

标记-整理算法:首先标记出所有的对象,回收时让存活的对象都向一端移动,直接清理端边界外的内存

分代收集算法:将java堆分为新生代和老年代,垃圾回收时,新生代每次都有大量对象死去,所以采用复制算法,老年代存活的对象较多,使用标记-清除或标记-整理

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。