環境資訊中心綜合外電;姜唯 編譯;林大利 審校
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※教你寫出一流的銷售文案?
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※回頭車貨運收費標準
※別再煩惱如何寫文案,掌握八大原則!
※超省錢租車方案
※產品缺大量曝光嗎?你需要的是一流包裝設計!
※推薦台中搬家公司優質服務,可到府估價
摘錄自2020年4月20日自由時報報導
武漢肺炎疫情延燒全球,世界多國正在實施隔離封鎖令,民眾非必要不得外出,這也使得許多野生動物活動範圍因而變廣,在南美洲阿根廷的海岸城市,巨大的海豹跑進市區遊蕩,把流浪狗嚇壞了。
根據《俄羅斯衛星通信社》報導,阿根廷知名旅遊勝地馬德普拉塔(Mar del Plata)因實施隔離政策,街道沒人,遊客不來,巨大的海獅得以進入市區四處散步,並沿著海岸追逐難得一見的人類,對平時少見的景象感到相當好奇,但也嚇壞不少原本生活在當地的流浪狗。
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※超省錢租車方案
※別再煩惱如何寫文案,掌握八大原則!
※回頭車貨運收費標準
※教你寫出一流的銷售文案?
※產品缺大量曝光嗎?你需要的是一流包裝設計!
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※網頁設計最專業,超強功能平台可客製化
摘錄自2020年4月24日中央社報導
一般帶大量超級細菌的恆河,在印度全國封鎖近一個月後,因為幾乎沒有人類污染,瑜伽聖城瑞詩凱詩(Rishikesh)這段恆河河水,經政府檢測水質達到可飲用的標準。
印度北部北阿坎德省(Uttarakhand)污染控制局最近從瑞詩凱詩及哈里德瓦(Haridwar)的恆河河段抽樣進行化驗,發現水質可以飲用。
官方報告表示,哈基寶里河壇段的恆河水,生化需氧量(Biochemical oxygen demand)也下降20%。專家說,這意味著恆河水含氧量變高,水族可舒適地在河中呼吸。
印度中央污染控制局(Central Pollution Control Board)近日發表的調查報告顯示,恆河36個監測站中,有27個監測站測得恆河水質已變為可安全沐浴和水中生物可安全生活的水準。
生活環境
土地水文
土地利用
國際新聞
印度
封城
武漢肺炎
恆河
本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※回頭車貨運收費標準
※產品缺大量曝光嗎?你需要的是一流包裝設計!
※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面
※推薦評價好的iphone維修中心
※教你寫出一流的銷售文案?
※台中搬家公司教你幾個打包小技巧,輕鬆整理裝箱!
※台中搬家遵守搬運三大原則,讓您的家具不再被破壞!
5s的百公里加速時間。而且這隻是之前發布的Mini cooper JCW版本功率,countryman可能有着更讓人驚訝的動力表現。除了發動機不同的以外,懸架以及剎車都有着很大的改善,有着更加的性能表現。一旦駕駛起來,你就會發現它們之間有着很大的不同。
前言
對於SUV來說,天生的高重心以及高質量,使得它們在操控方面一直是比較弱的。不過有一個品牌卻是把運動做得淋漓盡致,最近它的又一諜照被外國所捕捉到,並且給我們帶來了不少的信息,相信這會是SUV界的最有駕駛樂趣的一員。
(上圖為2017款Mini Countryman S)
它就是寶馬旗下的MINI Countryman,大家可以將它理解為Mini cooper的加高五門版本。雖然加高加長了,但是它保留着Mini幾乎卡丁車的那種樂趣。
最近被曝光的是JCW版本的Mini Country Man,這是在普通版本上性能更進一部的版本。而它在最近的曝光中,最先是在紐林伯格,也就是眾多跑車測試性能的紐北。有着這般的背景,它的性能不容小覷。
單純在遮蓋的外觀來看,JCW版本Country Man在包圍上會有着較大的不同,取消了霧燈換來更大的散熱面積。
(上圖為2017款Mini Countryman S發動機)
動力方面將使用的是2.0T渦輪增壓發動機,最大功率162千瓦,最大扭矩320牛米,可以讓它有着6.5s的百公里加速時間。而且這隻是之前發布的Mini cooper JCW版本功率,countryman可能有着更讓人驚訝的動力表現。
除了發動機不同的以外,懸架以及剎車都有着很大的改善,有着更加的性能表現。一旦駕駛起來,你就會發現它們之間有着很大的不同。
內飾方面相信和新款的countryman幾乎一模一樣。僅僅在一些如方向盤、儀錶、座椅等細節處有着一點差異。
在國內,countryman JCW的最大競爭對手就是奔馳的GLA45 ,售價為57.80。但鑒於這是Mini品牌的產品,所以價格極有可能會在40萬左右。
編者總結:
這應該是市場上最具駕駛樂趣的SUV,在操控以及動力上和競爭對手相比有着較大的優勢,在外觀內飾上也有着非常出色表現,非常的個性和獨特。不過這註定是一部分人的玩物,並且是不使用的玩物,畢竟它在後排空間上始終是處於弱勢。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※台北網頁設計公司這麼多該如何選擇?
※智慧手機時代的來臨,RWD網頁設計為架站首選
※評比南投搬家公司費用收費行情懶人包大公開
※回頭車貨運收費標準
※網頁設計最專業,超強功能平台可客製化
※別再煩惱如何寫文案,掌握八大原則!
而這次加入1。5T發動機,就讓CR-V在現今的緊湊型SUV中立於不敗地位,燃油經濟性以及動力都可以達到一個相當優秀的地步,外觀上的改變也是能吸引更多的年輕用戶。不過競爭對手中的馬自達CX-4以及CX-5在燃油經濟性以及性能並不輸給CRV-V,以及奇駿在空間上的優點,CR-V要想突破這番困局還是需要視乎具體售價以及具體價格,若是能維持現今2。
編者總結:
毫無疑問,2.0L發動機被取代是毫無疑問的,畢竟現今服役的2.0L發動機有着不短的“年頭”。而這次加入1.5T發動機,就讓CR-V在現今的緊湊型SUV中立於不敗地位,燃油經濟性以及動力都可以達到一個相當優秀的地步,外觀上的改變也是能吸引更多的年輕用戶。不過競爭對手中的馬自達CX-4以及CX-5在燃油經濟性以及性能並不輸給CRV-V,以及奇駿在空間上的優點,CR-V要想突破這番困局還是需要視乎具體售價以及具體價格,若是能維持現今2.0L的價格,相信能給對手造成不少的衝擊。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!
※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線
※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整
※南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!
※教你寫出一流的銷售文案?
※超省錢租車方案
※回頭車貨運收費標準
80萬其外觀犹如其名般,就是甲殼蟲的造型,外觀設計也非常可愛,圓圓的大燈,具有獨特的氣質,敞篷版甲殼蟲外形上和基本車型相比更拉風。車身比MX5還是霸氣不少,顯得更“強壯”些,復古式的輪圈設計十分扎眼,也更體現甲殼蟲其優雅端莊的形象。
汽車並不只是代步工具,還能成為另外一種生活方式、態度。說起敞篷車,我想每個人心中都想擁有屬於自己的敞篷車。沒有什麼比駕駛着敞篷車,沐浴在蔚藍海岸暖陽下,更為令人陶醉,享受當下!有些人會覺得這種生活離自己太遙遠、讓人觸手不及。但小編覺得只要心中所想,按着心裏想法去走,努力,必定實現。
馬自達(進口)-馬自達MX-5
(以下簡稱:MX-5)
平行進口價:34.5萬(手動)35.5萬(自動)
MX5給人第一感覺,非常親切,前臉就像一大大的微笑,很討人喜歡,車燈方面,更像雪亮雙眼,有神韻,感覺這就是一部充滿活力朝氣的車子。
車身很小巧、流暢車身線條,視覺效果動感十足。
內飾我想大家也非常熟悉,MX-5也不例外,內飾設計也是沿用馬自達一貫風格,但值得一提,MX-5螺旋狀出風口設計,顯得戰鬥力十足。
MX-5採用的軟頂敞篷設計,車身重量更輕。開蓬時間絕對要比上百萬級別要快!在2-3s就可以完成開蓬關蓬,夠快吧!這也完全取決你個人速度夠不夠快,因為MX-5開/關蓬是純手動開啟。
MX-5在動力方面,搭載了2.0L自然吸氣發動機,峰值扭矩201牛米,但由於車身較輕,和上代車型相比動力更出色。傳動系統配備6擋手動和6擋自動變速箱,手動車型動力輸出更直接,而且具有挑逗性。自動變速箱反應也是特別迅速,降檔积極,開起來很活躍。無論是購買手動還是自動,MX-5都能給你很好的駕駛樂趣。
大眾(進口)-甲殼蟲 2015款 180TSI 敞篷版
(以下簡稱:甲殼蟲)
指導價:28.80萬
其外觀犹如其名般,就是甲殼蟲的造型,外觀設計也非常可愛,圓圓的大燈,具有獨特的氣質,敞篷版甲殼蟲外形上和基本車型相比更拉風。
車身比MX5還是霸氣不少,顯得更“強壯”些,復古式的輪圈設計十分扎眼,也更體現甲殼蟲其優雅端莊的形象。
甲殼蟲內飾與外形設計一樣,很可愛,中控台設計也很簡潔,檔次感還是蠻高的。不同顏色裝飾板的點綴,讓其更具個性化。
甲殼蟲同樣和MX5一樣,採用了軟頂敞篷設計,但其開/關蓬時間卻要比MX5,慢了幾倍,車頂棚開啟時間為11s,而MX5,只需要2s,摺疊收起時間為9.5s,MX5隻需要2s!
甲殼蟲可在不超過50公里車速進行開關,而MX5卻是無論在任何車速都能隨時隨地去開關蓬!現在汽車開關蓬還分快慢?!而甲殼蟲更有逼格!逼格才是最重要!
這款甲殼蟲動力總成,搭載1.2T渦輪增壓發動機,最大功率77千瓦,峰值扭矩175牛米。或許你在想1.2T排量太小,但這你並無需擔心,因渦輪介入較早,油門初段很輕快,你甚至感覺這會是1.2T排量的車型嗎!時速在100公里以後,還是仍然感覺到較強的後勁,底盤行駛質感很紮實、從容。
編者點評:
當擁有足夠資金買一台敞篷車,其實更注重是其顏值與內飾是否高端大氣上檔次,而動力只是其次,開敞篷車,更多是一種情懷,另一種生活方式,可以享受比全景天窗更直接的陽光,比普通車型也更拉風。但在當今社會,敞篷車也有自身不足地方,例如空氣污染,要是天天敞開蓬駕駛,吸入的廢氣不容樂觀,有人說,戴口罩唄,那麼帶口罩開還買這車幹啥?還有就是中國的氣候,時冷時熱,敞篷駕駛,要麼冷死,要麼熱死曬死等問題,那麼當你去買一部敞篷車這些都是要去克服接納的問題,裝逼拉風可都是需要付出點代價啊。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!
※網頁設計公司推薦不同的風格,搶佔消費者視覺第一線
※Google地圖已可更新顯示潭子電動車充電站設置地點!!
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※別再煩惱如何寫文案,掌握八大原則!
※網頁設計最專業,超強功能平台可客製化
※回頭車貨運收費標準
與此同時,還能通過手機遠程控制安防系統(T-BOX),隨時隨地了解控制車內外各種信息。新增的愛信6AT變速箱, 最大的優點就是平順性處於行業領先水平,質量穩定可靠,駕駛舒適性得到了提升。i-4WD智能適時四驅系統,具有兩驅、智能適時四驅及強制四驅等三種模式,極大地提高了傳祺GS4的越野性能。
如果說自主SUV的崛起,是得益於精品車型的話,那麼就不得不提傳祺GS4了,不俗的原創外觀+成熟的動力組合+大空間,正好符合了我們對一輛緊湊SUV的所有需求。
縱使傳祺GS4一經推出就取得了成功,但作為一款新車,還存在着很多進步的空間 。比如當時呼聲很高的“動力如果能有更多選擇就好了”,在今年初的時候,傳祺GS4 就順勢推出了235T(1.5T)動力配置,繼續鞏固了GS4銷量地位,在10月銷量中,傳祺GS4的成績已突破3.5萬。
後來,有更高要求的消費者又提出 “能不能增配6AT+四驅+後排出風口呢”?傳祺這次依舊沒讓我們失望!在半個月前,傳祺GS4就發布了2017新款,上述的功能都如我們所願,總共超過15項性能與配置升級!
2017款 傳祺GS4 235T 6AT版
指導價格:13.38-16.18萬
在廣州車展期間,小編也前往了傳祺展台目睹了新款GS4,但那個人山人海的場景依然歷歷在目,作為本地車企,在主場的人氣還是非常火爆的。
傳祺GS4 2017款15項配置升級中
最大的變化主要有以下3點
●車載互聯繫統
●愛信6AT+i-4WD
●後排出風口+USB接口
2017款GS4整合了百度CarLife車載互聯繫統,理論上支持所有Andriod系統手機,可實現語音控制,觸摸屏控制電話、音樂、地圖及其它App應用。
與此同時,還能通過手機遠程控制安防系統(T-BOX),隨時隨地了解控制車內外各種信息。
新增的愛信6AT變速箱, 最大的優點就是平順性處於行業領先水平,質量穩定可靠,駕駛舒適性得到了提升。
i-4WD智能適時四驅系統,具有兩驅、智能適時四驅及強制四驅等三種模式,極大地提高了傳祺GS4的越野性能。只需輕轉控制旋鈕,即可自由切換,兼顧燃油經濟性和通過性,最大爬坡度輕鬆≥40%。
後排新增出風口、雙USB接口與手機儲物盒,對於後排乘客而言,也豐富了乘車樂趣,因為都是非常實用的配置。同時,後排中央扶手及中央頭枕與後排隱私玻璃在2017款GS4中配車型即有所體現。
除這幾項大的升級之外,其餘的功能、性能升級在這就一一闡述了,想了解的朋友可以自己查一下產品資料。
小編最後點評
放眼所有汽車品牌,幾乎每個品牌都有屬於自己的品牌符號,像高爾夫之於大眾、卡羅拉之於豐田、3系之於寶馬。GS4之于于傳祺正是這樣,一款細分市場明星車型全面打響了品牌,成為了家喻戶曉的標杆產品。隨後又推出了GS8這款豪華大七座SUV,據小編了解,到目前為止已經收穫2萬個訂單了!在國產高端SUV銷量普遍不濟的情況下,GS8的勢頭非常奪人眼球。
在國產車裡,小編也不止一次推薦過GS4了,它和其他品牌不一樣,傳祺的原創設計、做工和自主核心技術非常成熟,不僅有了與合資同台競技的硬實力,還有了以後長久發展的根基,小編對它還是比較看好的。
2017款GS4的改款是成功的,豐富的產品線也趨於完善,配置升級非常實用,滿足了更多人的選車訴求。
更重要的是,價格方面也沒想象中大幅上漲,而是與1.5T 7速雙離合配置的價格保持了一致,聰明的定價相信也能俘虜不少新的消費者,繼續鞏固傳祺GS4在銷量榜的領先地位。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面
※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!
※想知道最厲害的網頁設計公司"嚨底家"!
※別再煩惱如何寫文案,掌握八大原則!
※產品缺大量曝光嗎?你需要的是一流包裝設計!
※回頭車貨運收費標準
※台中搬家公司費用怎麼算?
大家都知道,hashmap底層是數組+鏈表(不討論紅黑樹的情況),其中,這個數組,我們一般叫做哈希桶,大家如果去看jdk的源碼,會發現裏面有一些變量,叫做bin,這個bin,就是桶的意思,結合語境,就是哈希桶。
這裏舉個例子,假設一個hashmap的數組長度為4(0000 0100),那麼該hashmap就有4個哈希桶,分別為bucket[0]、bucket[1]、bucket[2]、bucket[3]。
現在有兩個node,hashcode分別是1(0000 0001),5(0000 0101). 我們當然知道,這兩個node,都應該放入第一個桶,畢竟1 mod 4,5 mod 4的結果,都是1。
但是,在代碼里,可不是用取模的方法來計算的,而是使用下面的方式:
int entryNodeIndex = (tableLength - 1) & hash;
應該說,在tableLength的值,為2的n次冪的時候,兩者是等價的,但是因為位運算的效率更高,因此,代碼一般都使用位運算,替代取模運算。
下面我們看看具體怎麼計算:
此處,tableLength即為哈希表的長度,此處為4. 4 – 1為3,3的二進製表示為:
0000 0011
那麼,和我們的1(0000 0001)相與:
0000 0001 -------- 1
0000 0011 -------- 3(tableLength - 1)
相與(同為1,則為1;否則為0)
0000 0001 -------- 1
結果為1,所以,應該放在第1個哈希桶,即數組下標為1的node。
接下來,看看5這個hashcode的節點要放在什麼位置,是怎麼計算:
0000 0101 -------- 5
0000 0011 -------- 3(tableLength - 1)
相與(同為1,則為1;否則為0)后結果:
0000 0001 -------- 1
此處,具體的整個transfer的細節,我們本講不會涉及太多,不過,大體的邏輯,我們可以來想一想。
以前面為例,哈希表一共4個桶,其中bucket[1]裏面,存放了兩個元素,假設是a、b,其hashcode分別是1,5.
現在,假設我們要擴容,一般來說,擴容的時候,都是新建一個bucket數組,其容量為舊錶的一倍,這裏舊錶為4,那新表就是8.
那,新表建立起來了,舊錶里的元素,就得搬到新表裡面去,等所有元素都搬到新表了,就會把新表和舊錶的指針交換。如下:
java.util.concurrent.ConcurrentHashMap#transfer
private transient volatile Node<K,V>[] nextTable;
transient volatile Node<K,V>[] table;
if (finishing) {
// 1
nextTable = null;
// 2
table = nextTab;
// 3
sizeCtl = (tabLength << 1) - (tabLength >>> 1);
return;
}
1處,將field:nextTable(也就是新表)設為null,擴容完了,這個field就會設為null
2處,將局部變量nextTab,賦值給table,這個局部變量nextTab里,就是當前已經擴容完畢的新表
3處,修改表的sizeCtl為:假設此處tabLength為4,tabLength << 1 左移1位,就是8;tabLength >>> 1,右移一位,就是2,。8 – 2 = 6,正好就等於 8(新表容量) * 0.75。
所以,這裏的sizeCtl就是,新表容量 * 負載因子,超過這個容量,基本就會觸發擴容。
ok,接着說,我們要怎麼從舊錶往新表搬呢? 那以前面的bucket[1]舉例,遍歷這個鏈表,計算各個node,應該放到新表的什麼位置,不就完了嗎?是的,理論上這麼寫就完事了。
但是,我們會怎麼寫呢?
用hashcode對新bucket數組的長度取余嗎?
jdk對效率的追求那麼高,肯定不會這麼寫的,我們看看,它怎麼寫的:
java.util.concurrent.ConcurrentHashMap#transfer
// 1
for (Node<K,V> p = entryNode; p != null; p = p.next) {
// 2
int ph = p.hash;
K pk = p.key;
V pv = p.val;
// 3
if ((ph & tabLength) == 0){
lowEntryNode = new Node<K,V>(ph, pk, pv, lowEntryNode);
}
else{
highEntryNode = new Node<K,V>(ph, pk, pv, highEntryNode);
}
}
1處,即遍歷舊的哈希表的某個哈希桶,假設就是遍歷前面的bucket[1],裏面有a/b兩個元素,hashcode分別為1,5那個。
2處,獲取該節點的hashcode,此處分別為1,5
3處,如果hashcode 和 舊錶長度相與,結果為0,則,將該節點使用頭插法,插入新表的低位;如果結果不為0,則放入高位。
ok,什麼是高位,什麼是低位。擴容后,新的bucket數組,長度為8,那麼,前面bucket[1]中的兩個元素,將分別放入bucket[1]和bucket[5].
ok,這裏的bucket[1]就是低位,bucket[5]為高位。
首先,大家要知道,hashmap中,容量總是2的n次方,請牢牢記住這句話。
為什麼要這麼做?你想想,這樣是不是擴容很方便?
以前,hashcode 為1,5的,都在bucket[1];而現在,擴容為8后,hashcode為1的,還是在newbucket[1],hashcode為5的,則在newbucket[5];這樣的話,是不是有一半的元素,根本不用動?
這就是我覺得的,最大的好處;另外呢,運算也比較方便,都可以使用位運算代替,效率更高。
好的,那我們現在問題來了,下面這句的原理是什麼?
if ((ph & tabLength) == 0){
lowEntryNode = new Node<K,V>(ph, pk, pv, lowEntryNode);
} else{
highEntryNode = new Node<K,V>(ph, pk, pv, highEntryNode);
}
為啥,hashcode & 舊哈希表的容量, 結果為0的,擴容后,就會在低位,也就是維持位置不變呢?而結果不為0的,擴容后,位置在高位呢?
代碼里用的如下判斷,滿足這個條件,去低位;否則,去高位。
if ((ph & tabLength) == 0)
還是用前面的例子,假設當前元素為a,hashcode為1,和哈希桶大小4,去進行與運算。
0000 0001 ---- 1
0000 0100 ---- 舊哈希表容量4
&運算(同為1則為1,否則為0)
結果:
0000 0000 ---- 結果為0
ok,這裏算出來,結果為0;什麼情況下,結果會為0呢?
那我們現在開始倒推,什麼樣的數,和 0000 0100 相與,結果會為0?
???? ???? ----
0000 0100 ---- 舊哈希表容量
&運算(同為1則為1,否則為0)
結果:
0000 0000 ---- 結果為0
因為與運算的規則是,同為1,則為1;否則都為0。那麼,我們這個例子里,舊哈希表容量為 0000 0100,假設表示為2的n次方,此處n為2,我們僅有第三位(第n+1)為1,那如果對方這一位為0,那結果中的這一位,就會為0,那麼,整個數,就為0.
所以,我們的結論是:假設哈希表容量,為2的n次方,表示為二進制后,第n+1位為1;那麼,只要我們節點的hashcode,在第n+1位上為0,則最終結果是0.
反之,如果我們節點的hashcode,在第n+1位為1,則最終結果不會是0.
比如,hashcode為5的時候,會是什麼樣子?
0000 0101 ---- 5
0000 0100 ---- 舊哈希表容量
&運算(同為1則為1,否則為0)
結果:
0000 0100 ---- 結果為4
此時,5這個hashcode,在第n+1位上為1,所以結果不為0。
至此,我們離答案好像還很遠。ok,不慌,繼續。
假設現在擴容了,新bucket數組,長度為8.
a元素,hashcode依然是1,a元素應該放到新bucket數組的哪個bucket里呢?
我們用前面說的這個算法來計算:
int entryNodeIndex = (tableLength - 1) & hash;
0000 0001 ---- 1
0000 0111 ---- 8 - 1 = 7
&運算(同為1則為1,否則為0)
結果:
0000 0001 ---- 結果為1
結果沒錯,確實應該放到新bucket[1],但怎麼推論出來呢?
// 1
if ((ph & tabLength) == 0){
// 2
lowEntryNode = new Node<K,V>(ph, pk, pv, lowEntryNode);
}
也就是說,假設一個數,滿足1處的條件:(ph & tabLength) == 0,那怎麼推論出2呢,即應該在低位呢?
ok,條件1,前面分析了,可以得出:
這個數,第n+1位為0.
接下來,看看數組長度 – 1這個數。
| 數組長度 | 2的n次方 | 二進製表示 | 1出現的位置 | 數組長度-1 | 數組長度-1的二進制 |
|---|---|---|---|---|---|
| 2 | 2的1次方 | 0000 0010 | 第2位 | 1 | 0000 0001 |
| 4 | 2的2次方 | 0000 0100 | 第3位 | 3 | 0000 0011 |
| 8 | 2的3次方 | 0000 1000 | 第4位 | 7 | 0000 0111 |
好了,兩個數都有了,
???????0??????? -- 1 節點的hashcode,第n + 1位為0
000000010000000 -- 2 老數組
000000100000000 -- 3 新數組的長度,等於老數組長度 * 2
000000011111111 -- 4 新數組的長度 - 1
運算:1和4相與
大家注意看紅字部分,還有框出來的那一列,這一列為0,導致,最終結果,肯定是比2那一行的数字小,2這行,不就是老數組的長度嗎,那你比老數組小;你比這一行小,在新數組裡,就只能在低位了。
反之,如果節點的hashcode,這一位為1,那麼,最終結果,至少是大於等於2這一行的数字,所以,會放在高位。
https://www.jianshu.com/p/2829fe36a8dd
本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理
【其他文章推薦】
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※別再煩惱如何寫文案,掌握八大原則!
※教你寫出一流的銷售文案?
※超省錢租車方案
※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益
※產品缺大量曝光嗎?你需要的是一流包裝設計!
※回頭車貨運收費標準