久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java編程技術(shù)之淺析Java容器技術(shù)

 python_lover 2021-07-12

Java容器

集合是一種存儲(chǔ)數(shù)據(jù)的容器,是Java開(kāi)發(fā)中使用最頻繁的對(duì)象類型之一.

UA9TQf.png
或許提起Collection,,都會(huì)第一時(shí)間意識(shí)到List和Set以及Map等相關(guān)關(guān)鍵詞,。因?yàn)檫@幾乎是我們?nèi)粘i_(kāi)發(fā)里接觸最多和遇見(jiàn)最頻繁的,以及與數(shù)據(jù)處理交互最多的Java對(duì)象類型,。換句話說(shuō),,就是我們與數(shù)據(jù)進(jìn)行處理的數(shù)據(jù)對(duì)象存儲(chǔ)模型。但是:

List->[AbstractList,ArrayList,AbstractSeaquentialList,LinkedList]
Set->[AbstractSet,HashSet,SortedSet,TreeSet,LinkedHashSet]
Map->[AbstractMap,SortedMap,TreeMap,HashMap,LinkedHashMap,ConcurrentHashMap]

Collection容器

UkIxu6.png
UksgfO.png
UAkGb8.png

Collection容器包含List和Set以及Queue子容器,。

List接口

UekOMj.png

List接口的實(shí)現(xiàn)類主要有:ArrayList,、LinkedList、Stack以及Vector等

ArrayList[線程不安全]
  • ArrayList-uml結(jié)構(gòu)圖:
    UeAJeI.png
LinkedList
  • LinkedList-uml結(jié)構(gòu)圖:
    UeAaY8.png

Stack

  • Stack-uml結(jié)構(gòu)圖:
    UeAIX9.png

Vector

  • Vector-uml結(jié)構(gòu)圖:
    UeATmR.png

Set容器

UeAv1e.png

Set接口的實(shí)現(xiàn)類主要有:HashSet,、TreeSet,、LinkedHashSet等

Queue容器

Map容器

UAZARH.png

Map是一個(gè)鍵值對(duì)集合,存儲(chǔ)鍵,、值和之間的映射。Key無(wú)序,,唯一,;value 不要求有序,允許重復(fù),。Map沒(méi)有繼承于Collection接口,,從Map集合中時(shí),只要給出鍵對(duì)象,,就會(huì)返回對(duì)應(yīng)的值對(duì)象,。

在使用Java開(kāi)發(fā)分布式系統(tǒng)以及應(yīng)對(duì)高并發(fā)場(chǎng)景的情況,看得最多的就是在并發(fā)場(chǎng)景中切忌使用HashMap,。也是最近幾年面試熱題之一,,主要原因:

  • [1].在JDK1.8版本之前,并發(fā)場(chǎng)景使用HashMap會(huì)導(dǎo)致出現(xiàn)死循環(huán),,從而導(dǎo)致CPU使用率會(huì)居高不下,,這主要是JDK在設(shè)計(jì)HashMap擴(kuò)容機(jī)制的局限導(dǎo)致。
  • [2]在JDK1.8版本之后,,雖然修復(fù)了HashMap擴(kuò)容導(dǎo)致死循環(huán)的問(wèn)題,,但是在高并發(fā)場(chǎng)景下,依然會(huì)出現(xiàn)數(shù)據(jù)丟失以及不準(zhǔn)確的情況發(fā)生,。

Map的常用實(shí)現(xiàn)類:HashMap,、TreeMap、HashTable、LinkedHashMap,、ConcurrentHashMap以及Properties等

HashMap[線程不安全]

  • HashMap-uml結(jié)構(gòu)圖:
    UeFbuR.png

  • 線程不安全主要體現(xiàn)在下面兩個(gè)方面:

[1].在JDK1.7中,,當(dāng)并發(fā)執(zhí)行擴(kuò)容操作時(shí)會(huì)造成環(huán)形鏈和數(shù)據(jù)丟失的情況
[2].在JDK1.8中,在并發(fā)執(zhí)行put操作時(shí)會(huì)發(fā)生數(shù)據(jù)覆蓋的情況

  • HashMap的擴(kuò)容條件:

HashMap有擴(kuò)容機(jī)制,,就是當(dāng)達(dá)到擴(kuò)容條件時(shí)會(huì)進(jìn)行擴(kuò)容:
[1].當(dāng)HashMap中的元素個(gè)數(shù)(size)超過(guò)臨界值(threshold)時(shí)就會(huì)自動(dòng)擴(kuò)容,。
[2].在HashMap中,threshold = loadFactor * capacity

TreeMap

  • TreeMap-uml結(jié)構(gòu)圖:
    UeEnns.png

HashTable

  • HashTable-uml結(jié)構(gòu)圖:
    UeEQA0.png

ConcurrentHashMap[線程安全]

  • ConcurrentHashMap-uml結(jié)構(gòu)圖:
    UekV58.png

Properties

  • Properties-uml結(jié)構(gòu)圖:
    UeVir9.png

Iterator容器

UAi5WR.png
版權(quán)聲明:本文為博主原創(chuàng)文章,,遵循相關(guān)版權(quán)協(xié)議,,如若轉(zhuǎn)載或者分享請(qǐng)附上原文出處鏈接和鏈接來(lái)源。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多