亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

這些常見(jiàn)的java集合面試問(wèn)題及答案(超級(jí)實(shí)用)

  發(fā)布時(shí)間:2020-01-10 16:25:06   作者:程序媛馬小兮   我要評(píng)論
這篇文章主要介紹了這些常見(jiàn)的java集合面試問(wèn)題及答案(超級(jí)實(shí)用),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Java集合框架為Java編程語(yǔ)言的基礎(chǔ),也是Java面試中很重要的一個(gè)知識(shí)點(diǎn)。Java集合是java提供的工具包,包含了常用的數(shù)據(jù)結(jié)構(gòu):集合、鏈表、隊(duì)列、棧、數(shù)組、映射等。

1.Java集合框架是什么?說(shuō)出一些集合框架的優(yōu)點(diǎn)?
每種編程語(yǔ)言中都有集合,最初的Java版本包含幾種集合類(lèi):Vector、Stack、HashTable和Array。隨著集合的廣泛使用,Java1.2提出了囊括所有集合接口、實(shí)現(xiàn)和算法的集合框架。在保證線程安全的情況下使用泛型和并發(fā)集合類(lèi),Java已經(jīng)經(jīng)歷了很久。它還包括在Java并發(fā)包中,阻塞接口以及它們的實(shí)現(xiàn)。集合框架的部分優(yōu)點(diǎn)如下:
(1)使用核心集合類(lèi)降低開(kāi)發(fā)成本,而非實(shí)現(xiàn)我們自己的集合類(lèi)。
(2)隨著使用經(jīng)過(guò)嚴(yán)格測(cè)試的集合框架類(lèi),代碼質(zhì)量會(huì)得到提高。
(3)通過(guò)使用JDK附帶的集合類(lèi),可以降低代碼維護(hù)成本。
(4)復(fù)用性和可操作性。

2.Java集合框架的基礎(chǔ)接口有哪些?
Collection為集合層級(jí)的根接口。一個(gè)集合代表一組對(duì)象,這些對(duì)象即為它的元素。Java平臺(tái)不提供這個(gè)接口任何直接的實(shí)現(xiàn)。
Set是一個(gè)不能包含重復(fù)元素的集合。這個(gè)接口對(duì)數(shù)學(xué)集合抽象進(jìn)行建模,被用來(lái)代表集合,就如一副牌。
List是一個(gè)有序集合,可以包含重復(fù)元素。你可以通過(guò)它的索引來(lái)訪問(wèn)任何元素。List更像長(zhǎng)度動(dòng)態(tài)變換的數(shù)組。
Map是一個(gè)將key映射到value的對(duì)象.一個(gè)Map不能包含重復(fù)的key:每個(gè)key最多只能映射一個(gè)value。
一些其它的接口有Queue、Dequeue、SortedSet、SortedMap和ListIterator。

3.fail-fast與fail-safe有什么區(qū)別?
Iterator的fail-fast屬性與當(dāng)前的集合共同起作用,因此它不會(huì)受到集合中任何改動(dòng)的影響。Java.util包中的所有集合類(lèi)都被設(shè)計(jì)為fail-fast的,而java.util.concurrent中的集合類(lèi)都為fail-safe的。Fail-fast迭代器拋出ConcurrentModificationException,而fail-safe迭代器從不拋出ConcurrentModificationException。

4.在迭代一個(gè)集合的時(shí)候,如何避免ConcurrentModificationException?
在遍歷一個(gè)集合的時(shí)候,我們可以使用并發(fā)集合類(lèi)來(lái)避免ConcurrentModificationException,比如使用CopyOnWriteArrayList,而不是ArrayList。

5.為何Iterator接口沒(méi)有具體的實(shí)現(xiàn)?
Iterator接口定義了遍歷集合的方法,但它的實(shí)現(xiàn)則是集合實(shí)現(xiàn)類(lèi)的責(zé)任。每個(gè)能夠返回用于遍歷的Iterator的集合類(lèi)都有它自己的Iterator實(shí)現(xiàn)內(nèi)部類(lèi)。
這就允許集合類(lèi)去選擇迭代器是fail-fast還是fail-safe的。比如,ArrayList迭代器是fail-fast的,而CopyOnWriteArrayList迭代器是fail-safe的。

6.UnsupportedOperationException是什么?
UnsupportedOperationException是用于表明操作不支持的異常。在JDK類(lèi)中已被大量運(yùn)用,在集合框架java.util.Collections.UnmodifiableCollection將會(huì)在所有add和remove操作中拋出這個(gè)異常。

7.哪些集合類(lèi)提供對(duì)元素的隨機(jī)訪問(wèn)?
ArrayList、HashMap、TreeMap和HashTable類(lèi)提供對(duì)元素的隨機(jī)訪問(wèn)。

8.EnumSet是什么?
java.util.EnumSet是使用枚舉類(lèi)型的集合實(shí)現(xiàn)。當(dāng)集合創(chuàng)建時(shí),枚舉集合中的所有元素必須來(lái)自單個(gè)指定的枚舉類(lèi)型,可以是顯示的或隱示的。EnumSet是不同步的,不允許值為null的元素。它也提供了一些有用的方法,比如copyOf(Collection c)、of(E first,E…rest)和complementOf(EnumSet s)。

9.哪些集合類(lèi)是線程安全的?
Vector、HashTable、Properties和Stack是同步類(lèi),所以它們是線程安全的,可以在多線程環(huán)境下使用。Java1.5并發(fā)API包括一些集合類(lèi),允許迭代時(shí)修改,因?yàn)樗鼈兌脊ぷ髟诩系目寺∩希运鼈冊(cè)诙嗑€程環(huán)境中是安全的。

10.并發(fā)集合類(lèi)是什么?
Java1.5并發(fā)包(java.util.concurrent)包含線程安全集合類(lèi),允許在迭代時(shí)修改集合。迭代器被設(shè)計(jì)為fail-fast的,會(huì)拋出ConcurrentModificationException。一部分類(lèi)為:CopyOnWriteArrayList、 ConcurrentHashMap、CopyOnWriteArraySet。

11.Comparable和Comparator接口有何區(qū)別?
Comparable和Comparator接口被用來(lái)對(duì)對(duì)象集合或者數(shù)組進(jìn)行排序。Comparable接口被用來(lái)提供對(duì)象的自然排序,我們可以使用它來(lái)提供基于單個(gè)邏輯的排序。
Comparator接口被用來(lái)提供不同的排序算法,我們可以選擇需要使用的Comparator來(lái)對(duì)給定的對(duì)象集合進(jìn)行排序。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 新浪java面試題與參考答案解析

    這篇文章主要介紹了新浪java面試題與參考答案,總結(jié)分析了新浪java面試網(wǎng)絡(luò)編程題目與參考答案,涉及java socket通信客戶(hù)端與服務(wù)器端功能實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2020-01-09
  • 2020年12道高頻JavaScript手寫(xiě)面試題及答案

    這篇文章主要介紹了2020年12道高頻JavaScript手寫(xiě)面試題及答案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編
    2020-01-06
  • java面試題2020搶先看(夠全)

    這篇文章主要介紹了java面試題2020搶先看(夠全),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)
    2020-01-02
  • Java基本類(lèi)型和運(yùn)算符(面試題)

    這篇文章主要介紹了Java基本類(lèi)型和運(yùn)算符(面試題),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)
    2019-12-23
  • JavaScript關(guān)于數(shù)組的四道面試題

    這篇文章主要介紹了JavaScript關(guān)于數(shù)組的四道面試題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)
    2019-12-23
  • Java程序員面試經(jīng)常問(wèn)到的30道基礎(chǔ)題

    這篇文章主要介紹了Java程序員面試經(jīng)常問(wèn)到的30道基礎(chǔ)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-17
  • 我掏空了各大搜索引擎,給你整理了154道Java面試題

    這篇文章主要介紹了我掏空了各大搜索引擎,給你整理了154道Java面試題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • 京東大數(shù)據(jù)方向Java實(shí)習(xí)面試經(jīng)歷簡(jiǎn)述【一面、二面】

    這篇文章主要介紹了京東大數(shù)據(jù)方向Java實(shí)習(xí)面試經(jīng)歷,簡(jiǎn)單描述了京東大數(shù)據(jù)方向java面試一面與二面過(guò)程中所遇到的各種問(wèn)題,需要的朋友可以參考下
    2019-12-10
  • 美團(tuán)Java實(shí)習(xí)招聘面試經(jīng)歷總結(jié)【已拿到Offer】

    這篇文章主要介紹了美團(tuán)Java實(shí)習(xí)招聘面試經(jīng)歷,總結(jié)了美團(tuán)java實(shí)習(xí)生招聘所經(jīng)歷的四輪面試相關(guān)問(wèn)題與參考答案,分析面試中拿到Offer的經(jīng)驗(yàn),需要的朋友可以參考下
    2019-12-06
  • 從面試官甄別項(xiàng)目經(jīng)驗(yàn)的角度,說(shuō)說(shuō)如何在簡(jiǎn)歷中寫(xiě)項(xiàng)目經(jīng)驗(yàn)(java后端方

    在本文里,不討論這種門(mén)檻是否合理,而會(huì)以Java相關(guān)經(jīng)驗(yàn)為例,說(shuō)說(shuō)面試官甄別真實(shí)商業(yè)項(xiàng)目的方式,并以此為基礎(chǔ)講述在簡(jiǎn)歷中描述項(xiàng)目的要點(diǎn),并進(jìn)一步給出在面試中介紹項(xiàng)目
    2019-12-02

最新評(píng)論