調(diào)用該方法后當(dāng)前線程進入睡眠狀態(tài),直到以下事件發(fā)生 。
其他線程調(diào)用了該對象的notify方法 。
其他線程調(diào)用了該對象的notifyAll方法 。
其他線程調(diào)用了interrupt中斷該線程 。
時間間隔到了 。
此時該線程就可以被調(diào)度了,如果是被中斷的話就拋出一個InterruptedException異常 。
hash 法簡介hash 算法,又被成為散列算法
基本上,哈希算法就是將對象本身的鍵值,通過特定的數(shù)學(xué)函數(shù)運算或者使用其他方法,轉(zhuǎn)化成相應(yīng)的數(shù)據(jù)存儲地址的 。
而哈希法所使用的數(shù)學(xué)函數(shù)就被稱為 『哈希函數(shù)』又可以稱之為散列函數(shù) 。
如果我們能在數(shù)組存放的時候就按一定的規(guī)則放入元素,在我們想找某個元素的時候在根據(jù)之前定好的規(guī)則,就可以很快的得到我們想要的結(jié)果了 。換句話說之前我們在數(shù)組中存放元素的順序可能是依照添加順序進行的,但是如果我們是按照一種既定的數(shù)學(xué)函數(shù)運算得到要放入元素的值,和數(shù)組角標(biāo)的映射關(guān)系的話 。那么我們在想取某個值的元素的時候就使用映射關(guān)系就可以找到對應(yīng)的角標(biāo)了 。
在常見的 hash 函數(shù)中有一種最簡單的方法交「除留余數(shù)法」,操作方法就是將要存入數(shù)據(jù)除以某個常數(shù)后,使用余數(shù)作為索引值 。
下面看個例子:將 323,458,25,340,28,969,77 使用「除留余數(shù)法」存儲在長度為11的數(shù)組中 。我們假設(shè)上邊說的某個常數(shù)即為數(shù)組長度11 。每個數(shù)除以11以后存放的位置如下圖所示:
試想一下我們現(xiàn)在想要拿到 77 在數(shù)組中的位置,是不是只需要arr[77%11] = 77 就可以了 。
但是上述簡單的 hash 算法,缺點也是很明顯的,比如 77 和 88 對 11 取余數(shù)得到的值都是 0,但是角標(biāo)為 0 位置已經(jīng)存放了 77 這個數(shù)據(jù),那88就不知道該去哪里了 。上述現(xiàn)象在哈希法中有個名詞叫碰撞:
碰撞:若兩個不同的數(shù)據(jù)經(jīng)過相同哈希函數(shù)運算后,得到相同的結(jié)果,那么這種現(xiàn)象就做碰撞 。
如果兩個對象相同,那么它們的hashCode值一定要相同;
如果兩個對象的hashCode相同,它們并不一定相同(這里說的對象相同指的是用equals方法比較) 。
equals()相等的兩個對象,hashCode()一定相等;equals()不相等的兩個對象,卻并不能證明他們的hashCode()不相等 。
以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!
「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助:- java畫圖像表格 java繪圖程序代碼
- excel字節(jié)數(shù)量統(tǒng)計方法 excel字符數(shù)函數(shù)
- java做桌面應(yīng)用程序 javaee學(xué)習(xí)路線
- java新手代碼大全 java怎么使用數(shù)組
- java編譯中文亂碼 java中文亂碼怎么解決
- php數(shù)組去重函數(shù) php數(shù)組去重的方法
- java開發(fā)中常見中間件 java中間件技術(shù)有哪些
- java下載安裝教程 java下載網(wǎng)址官網(wǎng)
- java源代碼運行操作方法 java源代碼怎么運行
- 2021Java學(xué)習(xí)路線 java開發(fā)學(xué)習(xí)路線
