91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK7 HashMap環的產生原理是什么

發布時間:2021-12-03 11:18:58 來源:億速云 閱讀:135 作者:柒染 欄目:云計算

這篇文章將為大家詳細講解有關JDK7 HashMap環的產生原理是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。 

JDK7 分析

JDK7中當我們用頭插法 對舊table數據重定位到新table的時候我們知道是會行程環的,環產生的核心函數transfer如下,其中重點關注部分以標出。JDK7 HashMap環的產生原理是什么

  1. 頭插法正常情況下:     JDK7 HashMap環的產生原理是什么
  2. 并發情況下,比如我有兩個線程在同時進行put數據跟擴容操作,線程1只執行了     Entry<K,V> next = e.next就被掛起了,而線程2     正常執行完畢,結果圖如下:     JDK7 HashMap環的產生原理是什么線程2執行完畢后線程1接著從原來的暫停處開始執行下面的語句:     JDK7 HashMap環的產生原理是什么通過逐步分析跟繪圖可以知道紅色部分會有環產生。JDK中HashMap是不安全的,多線程情況下要用ConcurrentHashMap。
 

7vs8

  1. 7中找      Hash用了4次,8中只用了1次。
  2. 7 = 數組 + 鏈表,8 = 數組 + 鏈表 + 紅黑樹
  3. 7中是頭插法,多線程容易造成環,8中是尾插法。
  4. 7的擴容是全部數據重新定位,8中是位置不變+ 移動舊size大小來實現更好些。
  5. 7是先判斷是否要擴容再插入,8中是先插入再看是否要擴容。
  6. HashMap不管78都是線程不安全的,多線程情況下記得用      ConcurrentHashmap。      ConcurrentHashmap下篇文章說。
 

常見問題

隨機搜羅了一些常見HashMap問題,如果把HashMap都看懂了應付這些應該沒問題。

  1. HashMap原理,內部數據結構。
  2. HashMap中的put,get,remove大致過程。
  3. HashMap中 hash函數實現。
  4. HashMap如何擴容。
  5. HashMap幾個重要參數為什么這樣設定。
  6. HashMap為什么線程不安全,如何替換。
  7. HashMap在JDK7跟JDK8中的區別。
  8. HashMap中鏈表跟紅黑樹切換思路。
sowhat1412 提了一個問題

關于JDK7 HashMap環的產生原理是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平原县| 玛纳斯县| 商水县| 武平县| 海宁市| 武强县| 宣威市| 商都县| 浦县| 英吉沙县| 南宫市| 和龙市| 天水市| 垣曲县| 洪泽县| 沾化县| 淳安县| 扎赉特旗| 祁东县| 老河口市| 沈丘县| 土默特右旗| 黎城县| 贡嘎县| 宝丰县| 永春县| 柯坪县| 宜兰县| 寻乌县| 怀宁县| 岳普湖县| 阿尔山市| 巧家县| 彰武县| 获嘉县| 岫岩| 汉源县| 兴海县| 宝丰县| 大荔县| 柯坪县|