CMS 全称 concurrent mark sweep并发标记清除

因为是并发的,所以 gc 线程需要知道上一次到哪里了,方便接着上次的进度继续跑,那么就需要一个东西记录上次运行到哪里了,这个状态就是“颜色”, 黑色、灰色、白色,三种,是存在java对象头里的

黑色,并发标记扫描到了这个节点,且所有的子节点,