ConcurrentHashMap使用成员变量volatile table,为啥先将其赋给本地变量

这种方法是在操作一个对象时,防止因为原对象的引用发生改变而造成对原对象的操作应用到新对象上。有点拗口,⊙﹏⊙b汗。以这里的“tab”变量为例。如果不先把"volatile table"保存到本地变量"tab"上,那么后续一系列对“table”的读操作可能读到新的值,从而对新的对象应用旧的操作,显然很容易产生bug。而使用这种保存到本地变量的方法,所有的操作都固定在同一个引用上,不必担心引用被修改了。


    推荐阅读