名词解释html
简单地说,新对象出生在Eden,若是Eden不够了,触发gc(Minor GC)把存活的对象搬到s0,下次gc又搬到s1,再下次又搬到s0,如此往复,一个对象被搬到必定次数就是几岁,达到这个阈值就进入老年代。(默认15岁,就是一个狗狗的寿命)老年代满了也会gc(Major GC/Full GC)算法
顾名思义,两个阶段,先标记不被引用的对象,再清除掉,腾出内存。就像把围棋里被吃掉的棋子提出来。
缺点:空间碎片多spa
把空间等分两块,一块满了将全部活着的对象复制到另外一个块空间,再一次清理掉以前的空间。
优势:解决了碎片问题
缺点:可用内存变低了线程
标记以后,把存活的对象都移动到内存一端,把端边界之外的内存空间清理掉。
没有碎片,也能充分利用内存空间。老年代一般使用这种算法。htm
引用计数为空的对象:每一个对象有引用计数器,有引用就+1,引用失效就-1,为0则不可能再被使用。
GC root引用链搜索不到的对象:以GC root的对象为起点,沿它的引用搜索,引用链中搜索不到的对象也不会被使用。对象
参考文章:
https://www.cnblogs.com/zhouy...
https://www.cnblogs.com/wjtai...blog