代:0代,1代,2代;
所谓第几代,指经历过GC回收的次数。
回收算法:
1、确认需要检查的代。
在分配新对象时,
如果第0代已满,则进行检查;如果第1代已满,则进行检查;第2代同理;
如第0代没有足够的空间分配给新对象,则对第1代进行检查,第2代同理;
如果所有代都没有足够空间分配给新对象,则抛出内存溢出异常。
2、在特定代上进行:标记(有根标记) - > 压缩 - > 回收。