调试ConcurrentLinkedQueue 源码 poll() 方法时 ,出现了比较奇怪的现象,当时队列里有两个元素,如下截图, 但执行完 p.casItem(item, null)后,出现了令人无法理解的现象,如下图.程序是在单线程的模式下跑,无论如何都理解不了这个结果,理论上只有item被置为null,为什么next的值也变了,还指向了自身 最终在网上找到了答案,原来是IDEA的问题.使用debug时会默认开始 使用集合类的替代视图,这将会导致我们期待看到的队列的链表结构和实际的不相符.…