GC是垃圾回收, 垃圾就是无任何对象引用的对象,回收占用的内存空间而非对象本身
因为程序不断运行,不断有新的对象产生,为了避免无用对象的存在从而占用内存空间导致内存不足,因此要进行回收
当新生代满时触发Young GC,当老年代满时触发Full GC/Major GC
4种引用状态
分为强引用、软引用、弱引用、虚引用4种,这4种引用强度依次减弱
GC的两种标记方法
1.引用计数法
引用计数算法实现简单,效率高;不能解决循环引用的问题,导致内存泄漏
对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就+1;当引用失效时,引用计数器就-1。只要对象A的引用计数器的值为0,即表示对象A不可能再被使用,可进行回收
2.可达性分析算法
由根GC Roots开始向下遍历整个对象树,如果一个对象没有任何引用链,则将会被回收