为什么要GC?
服务器运行的时间通常都很长。累积的对象也会非常多。这些对象如果不做任何清理,任由它们数量不断累加,内存很快就会耗尽。所以GC就是要把不使用的对象都清理掉,把内存空间空出来,让项目可以持续运行下去。
什么样的对象是垃圾对象?
不再使用或获取不到的对象是垃圾对象。
如何把垃圾对象找出来?
办法1:引用计数法(不采用,不能解决循环引用问题)
办法2:可达性分析(从GC Roots对象出发,不可达的对象就是要清理的对象)
找到垃圾对象如何执行清理?
具体的GC算法
回目录 下一节