HashEntry<K,V> More ...getFirst(int hash) { HashEntry<K,V>[] tab = table; return tab[hash & (tab.length - 1)]; }
这里为何要新建一个 tab 变量? 直接
return table[hash & (table.length - 1)]; 有啥问题?
1
esolve OP HashEntry<K,V> More ...getFirst(int hash) {
HashEntry<K,V>[] tab = table; return tab[hash & (tab.length - 1)]; } |
2
SoloCompany 2017-03-28 01:29:55 +08:00
因为这是设计给无锁并发线程安全场景的,如果不先赋值给局部变量,两次对 table 的访问可能返回两个不一样的实例
|