日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java的framework_JAVA FRAMEWORK

發(fā)布時(shí)間:2024/9/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的framework_JAVA FRAMEWORK 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.新集合接口.

(1)Deque:雙端隊(duì)列,支持兩端的插入和移出,擴(kuò)展了Queue。

(2)BlockingDeque:支持接下來(lái)操作的Deque,當(dāng)讀取一個(gè)元素時(shí),等待Deque成為非空;當(dāng)存儲(chǔ)一個(gè)元素時(shí),等待空間可用。擴(kuò)展了Deque和

BlockingQueue。這個(gè)接口是java.util.concurrent的一部分。

(3)NavigableSet:擴(kuò)展了導(dǎo)航方法,為了給定搜索目標(biāo),提供最匹配結(jié)果的SortedSet。NavigableSet可以在升序或降序,被訪問(wèn)和移動(dòng)。這

個(gè)接口用來(lái)代替SortedSet接口。

(4)NavigableMap:擴(kuò)展了導(dǎo)航方法,返回給定搜索目標(biāo)最匹配結(jié)果的SortedMap。NavigableMap可以在升序或降序,被訪問(wèn)和移動(dòng)。這個(gè)接口

用來(lái)代替SortedMap接口。

(5)ConcurrentNavigableMap:一個(gè)并發(fā)的NavigableMap。這個(gè)接口是java.util.concurrent的一部分。

2.新集合接口的實(shí)現(xiàn)類(lèi).

(1)ArrayDeque:實(shí)現(xiàn)Deque接口的高效率可變長(zhǎng)的數(shù)組。

(2)ConcurrentSkipListSet:實(shí)現(xiàn)NavigableSet接口,可量測(cè)的,并發(fā)的,可跳躍的列表實(shí)現(xiàn)。

(3)ConcurrentSkipListMap:實(shí)現(xiàn)ConcurrentNavigableMap接口,可量測(cè)的,并發(fā)的,可跳躍的列表實(shí)現(xiàn)。

(4)LinkedBlockingDeque:實(shí)現(xiàn)BlockingDeque接口,可量測(cè)的,并發(fā)的,可選FIFO(First-In,First-Out)模塊化的以鏈接點(diǎn)為基礎(chǔ)的Deque。

(5)AbstractMap.SimpleEntry:Map.Entry簡(jiǎn)單的易變的實(shí)現(xiàn)。

(6)AbstractMap.SimpleImmutableEntry:Map.Entry簡(jiǎn)單的不變的實(shí)現(xiàn)。

3.存在類(lèi)的被重新實(shí)現(xiàn)新的接口。

(1)LinkedList:重新實(shí)現(xiàn)了Deque接口。

(2)TreeSet:實(shí)現(xiàn)NavigableSet接口。

(3)TreeMap:實(shí)現(xiàn)NavigableMap接口。

4.兩個(gè)新方法是被加入到Collections工具類(lèi)中。

(1)newSetFromMap(Map):從一個(gè)通過(guò)的Map實(shí)現(xiàn),創(chuàng)建一個(gè)通用的Set實(shí)現(xiàn)。

這沒(méi)有IdentityHashSet類(lèi),替代的,僅僅使用了:

SetidentityHashSet=Collections.newSetFromMap(newIdentityHashSet());

(2)asLifoQueue(Deque):返回一個(gè)后進(jìn)先出LIFO(Last-In,First-Out)的隊(duì)列Deque視圖。

5.Arrays工具類(lèi),現(xiàn)在有copyOf和copyOfRange方法有效的改變大小,截取,為了所有類(lèi)型的數(shù)組復(fù)制子數(shù)組。

之前:

int[]newArray=newint[newLength];

System.arrayCopy(oldArray,0,newArray,0,oldArray.length);

之后:

int[]newArray=Arrays.copyOf(a,newLength);

6.Deque(DoubleEndsQueue)[deck(發(fā)音)]?

(1)線性集合,支持元素的,兩端插入,移出。

(2)支持,元素限制。

(3)提供insert,remove,examine方法,這些方法提供兩種形式:

[1]操作失敗,一部分拋出異常,一部分返回特殊值(null或false,依賴(lài)方法。)。

[2]元素限制的Deque實(shí)現(xiàn),insert操作是被特殊設(shè)計(jì);許多實(shí)現(xiàn)插入操作不可能失敗。

(4)繼承Queue接口,作為Queue使用,結(jié)果為FIFO(First-In-First-Out).

(5)也可以用作Stack使用,結(jié)果為FILO(First-In-Last-Out)。

(6)提供兩個(gè)方法,移出內(nèi)部數(shù)據(jù),removeFirstOccurrence和removeLastOccurrence。

(7)該接口不支持索引訪問(wèn)元素。

(8)Deque,實(shí)現(xiàn)類(lèi)不嚴(yán)格要求,阻止null,但是是被推薦阻止null。不被鼓勵(lì)使用的原因,null是被一些方法做為特殊的返回值,指示Deque為空。

(9)Deque,不針對(duì)不同類(lèi)型的元素,實(shí)現(xiàn)equals和hasCode方法,代替的是繼承基于同一類(lèi)型的類(lèi)對(duì)象。

(10)該接口屬于JavaCollectionsFramework。

(11)since1.6。

7.ArrayDeque?

(1)實(shí)現(xiàn)Deque接口,沒(méi)有元素限制。

(2)非線程安全,不支持同步,并發(fā)操作。

(3)不允許有空元素。

(4)作為堆棧,快于Stack;作為隊(duì)列,快于LinkedList。

(5)除了,以下方法remove、removeFirstOccurrrence、removeLastOccurrence、contains、iterator.remove、批量操作,其它都是線性時(shí)間執(zhí)行。

(6)iterator方法返回的Iterators是fail-fast:如果Iterator創(chuàng)建后,除了Iterator的remove方法,Deque被任何方式,時(shí)間修改,將拋出

ConcurrentModificationException。因此,并發(fā)修改時(shí)候,iterator快速明確的舍棄,勝于冒任意,在不確定時(shí)間的不確定行為等未來(lái)不可預(yù)知的風(fēng)險(xiǎn)。

(7)ConcurrentModificationException,被推薦用來(lái)檢查程序Bug,不被推薦用來(lái)保證并發(fā)修改。

(8)該類(lèi)實(shí)現(xiàn)了Collection和Iterator接口的所有可選方法。

(9)該類(lèi)屬于JavaCollectionsFramework。

(10)since1.6。

8.BlockingDeque?

(1)支持模塊化操作的Deque,取元素時(shí),等待Deque成為非空。存儲(chǔ)元素時(shí),等待空間成為可用。

(2)BlockingDeque方法有四種形式,不同方式的處理操作不能立即感到滿意,但可能在未來(lái)一些時(shí)候,感到滿意:

[1]拋出異常。

[2]返回特殊值(根據(jù)方法,返回null或false)。

[3]阻塞當(dāng)前線程,直到操作執(zhí)行成功。

[4]阻塞指定時(shí)間后,放棄。

(3)像不同形式的BlockingQueue一樣,該類(lèi)是線程安全。

(4)不允許空元素

(5)可選,限制元素,與否。

(6)作為FIFOBlockingQueue使用。

(7)內(nèi)存結(jié)合影響:像別的并發(fā)集合操作,在一個(gè)線程周期內(nèi),放置一個(gè)BlockingDeque,在子Deque插入或移出前。

(8)該接口屬于JavaCollectionsFrameWork。

(9)since1.6。

9.LinkedBlockingDeque?

(1)可選的元素限定,基于線性結(jié)點(diǎn)的模塊化Deque。

(2)可選的元素限定,可以作為預(yù)防過(guò)多的擴(kuò)張。

(3)元素限定capacity沒(méi)有指定,默認(rèn)為Integer.MAX_VALUE。

(4)線性結(jié)點(diǎn)是被動(dòng)態(tài)創(chuàng)建于每次插入元素之上的,除了capacity指定的Deque。

(5)除了以下方法remove、removeFirstOccurrence、removeLastOccurrence、contains、iterator.remove、批量操作,其它花費(fèi)時(shí)間都是線性的。

(6)該類(lèi)實(shí)現(xiàn)了Collection和Iterator接口的所有可選方法。

(7)該類(lèi)屬于JavaCollectionsFramework。

(8)since1.6。

10.NavigableSet?

(1)實(shí)現(xiàn)導(dǎo)航方法,并返回指定搜索目標(biāo)的最接近匹配結(jié)果的SortedSet。

(2)方法lower、floor、ceiling、higher,返回元素分別是比給定元素小于、小于或等于、大于或等于、大于的元素。沒(méi)有該元素,則返回

null。

(3)可以被訪問(wèn),升序或降序。

(4)descendingSet返回所有相關(guān)的,反方向的元素視圖。

(5)升序操作快于降序操作。

(6)加之定義了,pollFirst和pollLast方法。返回并移動(dòng)最大和最小的元素。不存在此元素,返回null。

(7)方法subSet、headSet和tailSet不同于SortedSet的同名方法,接受附加的描述小的,大的相對(duì)排外的界定參數(shù)。

(8)任何NavigableSet的子接口實(shí)際類(lèi),都得實(shí)現(xiàn)NavigableSet接口。

(9)navigation方法的返回值是不確定的,在實(shí)現(xiàn)阻止null元素的實(shí)現(xiàn)類(lèi)中。通過(guò)使用contains(null)方法來(lái)檢測(cè),消除歧義。

(10)為了避免這個(gè)問(wèn)題,這個(gè)接口的實(shí)現(xiàn)類(lèi)是鼓勵(lì)阻止插入null值的。

注意:Comparable排序的set本質(zhì)上是不允許null值。

(11)方法subSet(E,E)、headSet(E)和tailSet(E)是被指定返回實(shí)現(xiàn)NavigableSet的SortedSet,為了兼容允許SortedSet的實(shí)現(xiàn)類(lèi)存在,但是,

這個(gè)接口的擴(kuò)展接口或?qū)崿F(xiàn)類(lèi),鼓勵(lì)重載這些方法,返回NavigableSet。

(12)該類(lèi)屬于JavaCollectionsFramework。

(13)since1.6。

11.ConcurrentSkipListSet?

(1)可量測(cè)的,并發(fā)的,基于ConcurrentSkipListMap,NavigableSet方法。

(2)這些元素被排序根據(jù)他們的自然順序,或通過(guò)創(chuàng)建Set時(shí)的Comparator,依賴(lài)使用的構(gòu)造方法。

(3)這個(gè)實(shí)現(xiàn)類(lèi)提供了log(n)時(shí)間花費(fèi)的contains、add、remove方法和變量。

(4)支持多線程并發(fā)插入,移出,訪問(wèn)。

(5)Iterator實(shí)現(xiàn)是弱的,返回元素在一些點(diǎn)或創(chuàng)建Iterator時(shí),是反映Set狀態(tài)的。他們不拋出ConcurrentModificationException異常,可以

并發(fā)別的操作。升序的Iterator和視圖,快于降序。

(6)小心,不像大多數(shù)集合,size方法不是常量時(shí)間的操作。因?yàn)檫@些Set是不同步的,決定元素的個(gè)數(shù)是需要元素的往返移動(dòng)。

(7)批量操作,addAll、removeAll、retainAll、containsAll,是不保證原子執(zhí)行的。

舉例:一個(gè)iterator和addAll并發(fā),瀏覽的數(shù)據(jù)可能是加入的一部分。

(8)這個(gè)類(lèi)和他的iterator實(shí)現(xiàn)了,Set和Iterator接口可選的所有方法。像多數(shù)別的并發(fā)集合實(shí)現(xiàn),這個(gè)類(lèi)不允許null元素,因?yàn)?#xff0c;null元素

和返回值null,不能被正確區(qū)分。

(9)該類(lèi)屬于JavaCollectionsFramework。

(10)since1.6。

12.NavigableMap?

(1)擴(kuò)展了導(dǎo)航方法并返回給定搜索目標(biāo)的最接近匹配結(jié)果的SortedMap。

(2)lowerEntry、floorEntry、ceilingEntry、higherEntry返回比給定key小于、小于等于、大于等于、大于的key所關(guān)聯(lián)的Map.Entry對(duì)象。沒(méi)

有這樣的key,返回null。

(3)同樣的,lowerKey、floorKey、ceilingKey、higherKey方法,僅僅返回關(guān)聯(lián)key。

(4)以上方法,被設(shè)計(jì),定位但不移動(dòng)條目。

(5)可以通過(guò)升序或降序的key來(lái)訪問(wèn)和移動(dòng)條目。

(6)descendingMap方法返回一個(gè)所有關(guān)系、方向上相反的視圖。

(7)升序操作和視圖快于降序。

(8)subMap、headMap、tailMap不同于SortedMap中的同名方法,接受附加的描述小的,大的相對(duì)排外的界定參數(shù)。

(9)任何NavigableMap的子接口實(shí)現(xiàn)類(lèi),必須實(shí)現(xiàn)NavigableMap接口。

(10)接口加之定義了firstEntry、pollFirstEntry、lastEntry、pollLastEntry返回或返回并移動(dòng)最小或最大的映射。不存在則返回null。

(11)返回Entry方法的執(zhí)行是期望返回記錄映射建造時(shí)快照的Map.Entry,因此通常不支持可選的Entry.setValue方法。

注意:使用put方法可以改變關(guān)聯(lián)中Map的映射。

(12)subMap(K,K)、headMap(K)、tailMap(K)是被指定返回實(shí)現(xiàn)NavigableMap的SortedMap,為了兼容允許SortedMap的實(shí)現(xiàn)類(lèi)存在,但是,

這個(gè)接口的擴(kuò)展接口或?qū)崿F(xiàn)類(lèi),鼓勵(lì)重載這些方法,返回NavigableMap。同樣,可以重載SortedMap.keySet()方法返回NavigableMap。

(13)該類(lèi)屬于JavaCollectionsFramework。

(14)since1.6。

13.ConcurrentNavigableMap?

(1)支持導(dǎo)航操作的ConcurrentMap。

(2)該類(lèi)屬于JavaCollectionsFramework。

(3)since1.6。

14.ConcurrentSkipListMap?

(1)可量測(cè)的、并發(fā)的ConcurrentNavigableMap實(shí)現(xiàn)類(lèi)。該Map是被排序根據(jù)key的自然順序,或創(chuàng)建時(shí),根據(jù)comparator排序,依賴(lài)于構(gòu)造函數(shù)。

(2)該實(shí)現(xiàn)類(lèi)實(shí)現(xiàn)了一個(gè)并發(fā)的SkipLists變量,提供了一個(gè)預(yù)期的平均log(n)執(zhí)行時(shí)間的containsKey、get、put、remove操作和變量。

(3)插入,移出,更新,訪問(wèn)操作支持多線程并發(fā)。

(4)Iterator是弱實(shí)現(xiàn)的,在有時(shí)或Iterator創(chuàng)建時(shí),返回的元素反映了Map的狀態(tài)。不拋出ConcurrentModificationException異常,可以繼續(xù)執(zhí)

行其它操作。

(5)升序key的排序視圖和Iterator是快于降序的。

(6)這個(gè)類(lèi)中方法返回的Map.Entry和視圖,表現(xiàn)了他們創(chuàng)建時(shí)的映射的一個(gè)快照。他們不支持Entry.setValue操作。

注:使用put,putIfAbsent,replace可能改變關(guān)聯(lián)的映射,依賴(lài)于你需要的嚴(yán)密性。

(7)小心,不像大多數(shù)集合實(shí)現(xiàn)類(lèi),size方法不是常量時(shí)間執(zhí)行的。因?yàn)檫@些Map是異步,決定元素的個(gè)數(shù)是需要元素的往返移動(dòng)。

(8)putAll,equals,clear是不保證原子執(zhí)行的。

例如:iterator操作和putAll并發(fā)操作,顯示的視圖可能是加入的一部分元素。

(9)這個(gè)類(lèi)實(shí)現(xiàn)了Map、Iterator接口的所有可選方法。像許多別的并發(fā)實(shí)現(xiàn)類(lèi),該類(lèi)不允許null元素,因?yàn)?#xff0c;null元素和返回值null,不能被正確

區(qū)分。

(10)該類(lèi)屬于JavaCollectionsFramework。

(11)since1.6。

與50位技術(shù)專(zhuān)家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java的framework_JAVA FRAMEWORK的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。