jvm垃圾收集器与内存分配

来源:互联网 发布:淘宝 大麦网官方旗舰店 编辑:程序博客网 时间:2024/05/21 06:26
垃圾收集器与内存分配:(可达性分析算法判定对象是否存活GC Roots)
1:强引用:只要引用存在就永远不会回收掉被引用的对象
2.软引用:有用但非必须的对象
3弱引用:非必须对象,生存到下一次垃圾回收前
4.虚引用:目的能在回收时收到一个系统通知
finalize()方法是对象逃脱死亡命运的最后一次机会(只会被系统自动调用一次)


垃圾回收算法
1.标记-清除算法(Mark-Sweep):标记出需要回收的对象,标记完成后统一回收。(不足:效率问题和空间问题(内存碎片))
2.复制算法:将内存按容量分为大小相等的两块,每次只使用其中的一块。当一块用完了,就将还存活的对象复制到另一块,再清理已使用的内存空间。(效率高,缺:代价大)
标记整理算法:将所有存活的对象都向一端移动,然后直接清理掉边界外的内存
分代收集算法:新生代用复制算法,老年代对象存活率高,必须用标记清理算法