垃圾回收机制:
1.引用计数法:对象被引用就加1,去除引用就减1,循环引用的问题(A引用了B,B引用了C,C引用了A)
GC Root Tracing 算法:从GC ROOT出发,所有可达的对象不是垃圾,所有不可达的对象视为垃圾。
2.标记清除法:第一次扫描先进行标记不是垃圾的对象,未被标记的对象就是垃圾,第二次扫描在进行垃圾清除,会产生内存碎片,导致空间不连续,造成空间浪费
3.标记压缩法:第一次扫描先进行标记不是垃圾的对象,未被标记的对象就是垃圾,第二次扫描在将不是垃圾的对象压缩到一边,空间连续
4.标记清除-压缩法:先进性标记清楚,然后再压缩(单纯的笔记清楚空间不连续,空间浪费;单纯的标记压缩,对象移动成本高,标记清除一部分,进行压缩;在进行新的标记清除)适用于存货对象较多对的老年代
5.复制算法:将原有的内存空间分为2块,将正在使用的对象复制到新的空间里,然后删掉原有的空间(一个对象需要开辟两段空间,极大的造成了空间上的浪费)适用于活对象较少的新生代