在看到List的add操作的时候,发现了一个全局的变量modCount:
在链表尾部添加节点,发现最后有个modCount++:
发现这个东西 用的地方还挺多:
仔细看了一下官方给的解释:
大致的意思是:modCount这个参数记录了 某个List改变大小的次数,如果modCount改变的不符合预期,那么就会抛出异常。
然后看了一下,判断的条件,有这么一个check函数,经常被调用:
预期的modCount:
看了源码之后,得到的结论也很明显了:在一些非多线程安全的情况下,通过这个modCount参数 检测是否有出现混乱的情况,会自动抛出异常。