<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Java程序員框架面試題

    時間:2024-10-13 22:47:08 面試筆試 我要投稿
    • 相關推薦

    Java程序員集合框架面試題

      Java集合框架是最常被問到的Java面試問題,要理解 Java技術強大特性就有必要掌握集合框架。這里有一些實用問題,常在核心 Java 面試中問到。

    Java程序員集合框架面試題

      1、什么是 Java 集合 API

      Java 集合框架 API 是用來表示和操作集合的統一框架,它包含接口、實現類、以及幫助程序員完成一些編程的算法。簡言之,API 在上層完成以下幾件事:

      編程更加省力,提高城程序速度和代碼質量

      非關聯的 API 提高互操作性

      節省學習使用新 API 成本

      節省設計新 API 的時間

      鼓勵、促進軟件重用

      具體來說,有 6 個集合接口,最基本的是 Collection 接口,由三個接口 Set、List、SortedSet 繼承,另外兩個接口是 Map、SortedMap,這兩個接口不繼承 Collection,表示映射而不是真正的集合。

      2、什么是 Iterator

      一些集合類提供了內容遍歷的功能,通過 java.util.Iterator 接口。這些接口允許遍歷對象的集合。依次操作每個元素對象。當使用 Iterators 時,在獲得 Iterator 的時候包含一個集合快照。通常在遍歷一個Iterator 的時候不建議修改集合本省。

      3、 Iterator 與 ListIterator 有什么區別?

      Iterator:只能正向遍歷集合,適用于獲取移除元素。ListIerator:繼承 Iterator,可以雙向列表的遍歷,同樣支持元素的修改。

      4、什么是 HaspMap 和 Map?

      Map 是接口,Java 集合框架中一部分,用于存儲鍵值對,HashMap 是用哈希算法實現 Map 的類。

      5、 HashMap 與 HashTable 有什么區別?對比 Hashtable VS HashMap

      兩者都是用 key-value 方式獲取數據。Hashtable 是原始集合類之一(也稱作遺留類)。HashMap 作為新集合框架的一部分在 Java2 的1.2版本中加入。它們之間有一下區別:

      HashMap 和 Hashtable 大致是等同的,除了非同步和空值(HashMap 允許 null 值作為 key 和 value,而 Hashtable 不可以)。

      HashMap 沒法保證映射的順序一直不變,但是作為 HashMap 的子類 LinkedHashMap,如果想要預知的順序迭代(默認按照插入順序),你可以很輕易的置換為 HashMap,如果使用 Hashtable 就沒那么容易了。

      HashMap 不是同步的,而 Hashtable 是同步的。

      迭代 HashMap 采用快速失敗機制,而 Hashtable 不是,所以這是設計的考慮點。

      6、在 Hashtable 上下文中同步是什么意思?

      同步意味著在一個時間點只能有一個線程可以修改哈希表,任何線程在執行hashtable 的更新操作前需要獲取對象鎖,其他線程等待鎖的釋放。

      7、什么叫做快速失敗特性

      從高級別層次來說快速失敗是一個系統或軟件對于其故障做出的響應。一個快速失敗系統設計用來即時報告可能會導致失敗的任何故障情況,它通常用來停止正常的操作而不是嘗試繼續做可能有缺陷的工作。當有問題發生時,快速失敗系統即時可見地發錯錯誤告警。在 Java 中,快速失敗與 iterators 有關。如果一個 iterator 在集合對象上創建了,其它線程欲“結構化”的修改該集合對象,并發修改異常 (ConcurrentModificationException) 拋出。

      8、怎樣使 Hashmap 同步?

      HashMap 可以通過 Map m = Collections.synchronizedMap(hashMap)來達到同步的效果。

      9、什么時候使用 Hashtable,什么時候使用 HashMap

      基本的不同點是 Hashtable 同步 HashMap 不是的,所以無論什么時候有多個線程訪問相同實例的可能時,就應該使用 Hashtable,反之使用 HashMap。非線程安全的數據結構能帶來更好的性能。

      如果在將來有一種可能—你需要按順序獲得鍵值對的方案時,HashMap 是一個很好的選擇,因為有 HashMap 的一個子類 LinkedHashMap。所以如果你想可預測的按順序迭代(默認按插入的順序),你可以很方便用 LinkedHashMap 替換 HashMap。反觀要是使用的 Hashtable 就沒那么簡單了。同時如果有多個線程訪問 HashMap,Collections.synchronizedMap ()可以代替,總的來說HashMap 更靈活。

      10、為什么 Vector 類認為是廢棄的或者是非官方地不推薦使用?或者說為什么我們應該一直使用 ArrayList 而不是 Vector

      你應該使用 ArrayList 而不是 Vector 是因為默認情況下你是非同步訪問的,Vector 同步了每個方法,你幾乎從不要那樣做,通常有想要同步的是整個操作序列。同步單個的操作也不安全(如果你迭代一個 Vector,你還是要加鎖,以避免其它線程在同一時刻改變集合).而且效率更慢。當然同樣有鎖的開銷即使你不需要,這是個很糟糕的方法在默認情況下同步訪問。你可以一直使用 Collections.sychronizedList 來裝飾一個集合。

      事實上 Vector 結合了“可變數組”的集合和同步每個操作的實現。這是另外一個設計上的缺陷。Vector 還有些遺留的方法在枚舉和元素獲取的方法,這些方法不同于 List 接口,如果這些方法在代碼中程序員更趨向于想用它。盡管枚舉速度更快,但是他們不能檢查如果集合在迭代的時候修改了,這樣將導致問題。盡管以上諸多原因,oracle 也從沒宣稱過要廢棄 Vector.


    【Java程序員框架面試題】相關文章:

    java程序員面試指南11-26

    Java面試的面試題目與解題思路 201411-20

    2017年java中高級筆試面試題及答案11-11

    面試題精選02-18

    分享面試題目 教育職業面試題11-20

    熱門就業行業面試題精選:編輯行業面試題!11-19

    Microsoft 面試題11-19

    蘋果 面試題11-19

    熱門就業行業面試題精選 銷售行業面試題11-20

    java面試的經驗11-20

    主站蜘蛛池模板: 亚洲国产精品无码专区影院| 久久久久亚洲精品男人的天堂| 亚洲欧洲久久久精品| 国产在线精品免费aaa片| 精品日本一区二区三区在线观看 | 亚洲欧美国产∧v精品综合网| 日韩精品在线视频| 国产精品天干天干综合网| 看99视频日韩精品| 国产精品毛片一区二区| 久久99精品国产麻豆宅宅| 国产精品亚洲A∨天堂不卡| 亚洲精品国精品久久99热| 精品国产日韩亚洲一区| 999久久久国产精品| 91精品国产福利在线导航| 精品久久久久久无码专区不卡| 亚洲国产精品SSS在线观看AV| 久久久99精品一区二区 | 久久免费精品视频| 国产成人精品天堂| 国产精品无码日韩欧| 精品一区二区三区东京热| 欧美午夜精品久久久久免费视| 亚洲线精品一区二区三区| 亚洲一区二区精品视频| 日韩精品无码免费视频| 日本精品久久久久久久久免费| 久久精品无码一区二区三区日韩| 国产精品偷伦视频免费观看了| 97国产视频精品| 国产精品永久免费视频| 国产天天综合永久精品日| 国产精品自在在线午夜福利| 国产精品午夜免费观看网站| 国产精品高清在线| 国产精品推荐天天看天天爽| 久久93精品国产91久久综合| 久久精品国产精品亚洲| 亚欧乱色国产精品免费视频| 亚洲精品宾馆在线精品酒店|