大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業指南 千道題中精選出的幾道Java集合類面試題

千道題中精選出的幾道Java集合類面試題

更新時間:2023-01-04 10:00:50 來源:動力節點 瀏覽1202次

在Java程序員的相關面試中,面試官必然會考核一些專業的技術知識,其中java集合類面試題是必須要做準備的,集合的知識點是Java框架的核心,必然是重要考點之一,所以,熟知并掌握,對于日后我們的面試與就業來說,幫助非常的大:

java集合類面試題

1. 什么是集合

  • 集合就是一個放數據的容器,準確的說是放數據對象引用的容器
  • 集合類存放的都是對象的引用,而不是對象的本身
  • 集合類型主要有3種:set(集)、list(列表)和map(映射)。

2. 集合的特點

集合的特點主要有如下兩點:

  • 集合用于存儲對象的容器,對象是用來封裝數據,對象多了也需要存儲集中式管理。
  • 和數組對比對象的大小不確定。因為集合是可變長度的。數組需要提前定義大小

3. 集合和數組的區別

  • 數組是固定長度的;集合可變長度的。
  • 數組可以存儲基本數據類型,也可以存儲引用數據類型;集合只能存儲引用數據類型。
  • 數組存儲的元素必須是同一個數據類型;集合存儲的對象可以是不同數據類型。

4. 使用集合框架的好處

容量自增長;

  1. 提供了高性能的數據結構和算法,使編碼更輕松,提高了程序速度和質量;
  2. 可以方便地擴展或改寫集合,提高代碼復用性和可操作性。
  3. 通過使用JDK自帶的集合類,可以降低代碼維護和學習新API成本。

5. 常用的集合類有哪些?

Map接口和Collection接口是所有集合框架的父接口:

  • Collection接口的子接口包括:Set接口和List接口
  • Map接口的實現類主要有:HashMap、TreeMap、Hashtable、ConcurrentHashMap以及Properties等
  • Set接口的實現類主要有:HashSet、TreeSet、LinkedHashSet等
  • List接口的實現類主要有:ArrayList、LinkedList、Stack以及Vector等

6. List,Set,Map三者的區別?

Java 容器分為 Collection 和 Map 兩大類,Collection集合的子接口有Set、List、Queue三種子接口。我們比較常用的是Set、List,Map接口不是collection的子接口。

  • Collection集合主要有List和Set兩大接口
  1. List:一個有序(元素存入集合的順序和取出的順序一致)容器,元素可以重復,可以插入多個null元素,元素都有索引。常用的實現類有 ArrayList、LinkedList 和 Vector。
  2. Set:一個無序(存入和取出順序有可能不一致)容器,不可以存儲重復元素,只允許存入一個null元素,必須保證元素唯一性。Set 接口常用實現類是 HashSet、LinkedHashSet 以及TreeSet。

Map是一個鍵值對集合,存儲鍵、值和之間的映射。 Key無序,唯一;value 不要求有序,允許重復。Map沒有繼承于Collection接口,從Map集合中檢索元素時,只要給出鍵對象,就會返回對應的值對象。

  1. Map 的常用實現類:HashMap、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap

7. 哪些集合類是線程安全的?

Vector:就比Arraylist多了個 synchronized (線程安全),因為效率較低,現在已經不太建議使用。

hashTable:就比hashMap多了個synchronized (線程安全),不建議使用。

ConcurrentHashMap:是Java5中支持高并發、高吞吐量的線程安全HashMap實現。它由Segment數組結構和HashEntry數組結構組成。Segment數組在ConcurrentHashMap里扮演鎖的角色,HashEntry則用于存儲鍵-值對數據。一個ConcurrentHashMap里包含一個Segment數組,Segment的結構和HashMap類似,是一種數組和鏈表結構;一個Segment里包含一個HashEntry數組,每個HashEntry是一個鏈表結構的元素;每個Segment守護著一個HashEntry數組里的元素,當對HashEntry數組的數據進行修改時,必須首先獲得它對應的Segment鎖。(推薦使用)

8. Java集合的快速失敗機制 “fail-fast”?

是java集合的一種錯誤檢測機制,當多個線程對集合進行結構上的改變的操作時,有可能會產生fail-fast 機制。

例如:假設存在兩個線程(線程1、線程2),線程1通過Iterator在遍歷集合A中的元素,在某個時候線程2修改了集合A的結構(是結構上面的修改,而不是簡單的修改集合元素的內容),那么這個時候程序就會拋出 ConcurrentModificationException 異常,從而產生fail-fast機制。

原因:迭代器在遍歷時直接訪問集合中的內容,并且在遍歷過程中使用一個 modCount 變量。集合在被遍歷期間如果內容發生變化,就會改變modCount的值。每當迭代器使用hashNext()/next()

遍歷下一個元素之前,都會檢測modCount變量是否為expectedmodCount值,是的話就返回遍歷;否則拋出異常,終止遍歷。

解決辦法:

在遍歷過程中,所有涉及到改變modCount值得地方全部加上synchronized。使用CopyOnWriteArrayList來替換ArrayList

以上就是“千道題中精選出的幾道Java集合類面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 天天做天天添天天谢 | 奇米网狠狠 | 久久天天躁日日躁狠狠躁 | 国产www在线播放 | 国产亚洲精aa在线观看不卡 | 一级毛片视频播放 | 日日夜夜骑 | 国产亚洲精品一区二区在线播放 | 亚洲国产成人久久一区久久 | 国产亚洲精品久久综合影院 | 国产91久久久久久久免费 | 精品小视频在线 | 中文字幕在线精品视频入口一区 | 久久久久久久久国产 | 亚洲成人精品视频 | 在线观看一区二区精品视频 | 12一14周岁毛片免费网站 | 亚洲视频网站在线观看 | 一级毛片牲交大片 | 国产在线乱子伦一区二区 | 曰本毛片va看到爽不卡 | 四虎精品影院在线观看视频 | 国产亚洲综合精品一区二区三区 | 亚洲精品久久玖玖玖玖 | 91视频免费观看高清观看完整 | 色片在线免费观看 | 交专区videossex另类 | 欧美一级黄色片在线观看 | 国产免费午夜a无码v视频 | 免费看一级大片 | 99久久国产综合精品女小说 | 国产特级片| 色中文字幕在线 | 亚洲综合日韩中文字幕v在线 | 色综合久久综合 | 欧美最大成人毛片视频网站 | 伊人久久久 | 在线日韩欧美 | 亚洲乱码视频 | 四虎在线最新永久免费 | 99在线精品国产不卡在线观看 |