static final class HashEntry<K,V> { final K key; final int hash; volatile V value; final HashEntry<K,V> next; }
这样导致在remove节点的时候,需要将remove节点的前面节点全部复制一遍,真的好吗?
光阴似箭催人老,日月如移越少年。
當發生hash衝突的時候,才會用到鍊錶解決衝突,但是hash衝突的機率很小,map還會自動擴容減少衝突。
對於使用final,java編譯器會保證在讀final域之前一定被寫入過,即保證寫在讀之前發生,避免多線程並發條件下出現讀後寫,讀到非預期的值。
傳送門:java記憶體模型 final
當發生hash衝突的時候,才會用到鍊錶解決衝突,但是hash衝突的機率很小,map還會自動擴容減少衝突。
對於使用final,java編譯器會保證在讀final域之前一定被寫入過,即保證寫在讀之前發生,避免多線程並發條件下出現讀後寫,讀到非預期的值。
傳送門:java記憶體模型 final