先看这篇 入门 再看这篇 进阶_源码 Table数组指的是 全局的大Node数组 put时,如果原先 Table数组中没有该hash值对应的Node结点,则CAS插入该记录(我猜每一个node结点都是用volatile修饰过的),如果原先 Table数组中有该hash值对应的Node结点,则对该Node结点(Node结点其实就是对应的链表的第一个结点或者红黑树的根节点)加Synchronized锁,这样可以确保put成功。