黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 java工程師面試筆試題及答案

java工程師面試筆試題及答案

更新時間:2020-03-03 11:20:15 來源:動力節點 瀏覽3351次


  1.Iterator和ListIterator的區別是什么?


  Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。


  Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以后向。


  ListIterator實現了Iterator接口,并包含其他的功能,比如:增加元素,替換元素,獲取前一個和后一個元素的索引,等等。


  2.快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什么?


  Iterator的安全失敗是基于對底層集合做拷貝,因此,它不受源集合上修改的影響。java.util包下面的所有的集合類都是快速失敗的,而java.util.concurrent包下面的所有的類都是安全失敗的。快速失敗的迭代器會拋出


  ConcurrentModificationException異常,而安全失敗的迭代器永遠不會拋出這樣的異常。


java工程師面試筆試題及答案


  3.Java中的HashMap的工作原理是什么?


  Java中的HashMap是以鍵值對(key-value)的形式存儲元素的。HashMap需要一個hash函數,它使用hashCode()和equals()方法來向集合/從集合添加和檢索元素。當調用put()方法的時候,HashMap會計算key的hash值,然后把鍵值對存儲在集合中合適的索引上。如果key已經存在了,value會被更新成新值。


  HashMap的一些重要的特性是它的容量(capacity),負載因子(loadfactor)和擴容極限(thresholdresizing)。


  4.hashCode()和equals()方法的重要性體現在什么地方?


  Java中的HashMap使用hashCode()和equals()方法來確定鍵值對的索引,當根據鍵獲取值的時候也會用到這兩個方法。如果沒有正確的實現這兩個方法,兩個不同的鍵可能會有相同的hash值,因此,可能會被集合認為是相等的。而且,這兩個方法也用來發現重復元素。所以這兩個方法的實現對HashMap的精確性和正確性是至關重要的。


  5.HashMap和Hashtable有什么區別?


  HashMap和Hashtable都實現了Map接口,因此很多特性非常相似。但是,他們有以下不同點:


  HashMap允許鍵和值是null,而Hashtable不允許鍵或者值是null。


  Hashtable是同步的,而HashMap不是。因此,HashMap更適合于單線程環境,而Hashtable適合于多線程環境。


  HashMap提供了可供應用迭代的鍵的集合,因此,HashMap是快速失敗的。另一方面,Hashtable提供了對鍵的列舉(Enumeration)。


  一般認為Hashtable是一個遺留的類。


java工程師面試筆試題及答案


  6.數組(Array)和列表(ArrayList)有什么區別?什么時候應該使用Array而不是ArrayList?


  下面列出了Array和ArrayList的不同點:


  Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。


  Array大小是固定的,ArrayList的大小是動態變化的。


  ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。


  對于基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。


  7.ArrayList和LinkedList有什么區別?


  ArrayList和LinkedList都實現了List接口,他們有以下的不同點:


  ArrayList是基于索引的數據接口,它的底層是數組。它可以以O(1)時間復雜度對元素進行隨機訪問。與此對應,LinkedList是以元素列表的形式存儲它的數據,每一個元素都和它的前一個和后一個元素鏈接在一起,在這種情況下,查找某個元素的時間復雜度是O(n)。


  相對于ArrayList,LinkedList的插入,添加,刪除操作速度更快,因為當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。


  LinkedList比ArrayList更占內存,因為LinkedList為每一個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。


  也可以參考ArrayListvs.LinkedList。


  8.Comparable和Comparator接口是干什么的?列出它們的區別。


  Java提供了只包含一個compareTo()方法的Comparable接口。這個方法可以個給兩個對象排序。具體來說,它返回負數,0,正數來表明輸入對象小于,等于,大于已經存在的對象。


  Java提供了包含compare()和equals()兩個方法的Comparator接口。compare()方法用來給兩個輸入參數排序,返回負數,0,正數表明第一個參數是小于,等于,大于第二個參數。equals()方法需要一個對象作為參數,它用來決定輸入參數是否和comparator相等。只有當輸入參數也是一個comparator并且輸入參數和當前comparator的排序結果是相同的時候,這個方法才返回true。


  9.什么是Java優先級隊列(PriorityQueue)?


  PriorityQueue是一個基于優先級堆的無界隊列,它的元素是按照自然順序(naturalorder)排序的。在創建的時候,我們可以給它提供一個負責給元素排序的比較器。PriorityQueue不允許null值,因為他們沒有自然順序,或者說他們沒有任何的相關聯的比較器。最后,PriorityQueue不是線程安全的,入隊和出隊的時間復雜度是O(log(n))。


  10.你了解大O符號(big-Onotation)么?你能給出不同數據結構的例子么?


  大O符號描述了當數據結構里面的元素增加的時候,算法的規模或者是性能在最壞的場景下有多么好。


  大O符號也可用來描述其他的行為,比如:內存消耗。因為集合類實際上是數據結構,我們一般使用大O符號基于時間,內存和性能來選擇最好的實現。大O符號可以對大量數據的性能給出一個很好的說明。


java工程師面試筆試題及答案


      以上就是動力節點Java培訓機構小編介紹的“java工程師面試筆試題及答案”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 毛片免费网址 | 国产不卡精品一区二区三区 | 国产资源中文字幕 | 国产三级精品三级在专区中文 | 黄站免费 | 欧美激情一区二区三级高清视频 | 手机在线毛片 | 国产一级做a爱免费观看 | 亚洲欧美不卡视频 | 久久久久免费视频 | 亚洲精品乱码国产精品乱码 | 性free中国美女hd| 成人午夜在线视频 | 在线观看日韩www视频免费 | 丁香六月在线观看 | 国产高清视频 | 一级毛片一级毛片免费毛片 | 最新欧美精品一区二区三区 | 成人影院免费在线观看 | 黄污视频免费观看 | 最近中文日本字幕免费完整 | 天天躁夜夜躁狠狠躁2021a | 免费的黄网站 | 日韩精品视频免费 | 一区二区三区欧美日韩国产 | 欧美成人手机视频 | 九九成人免费视频 | 在线不卡亚洲 | yy4080午夜一毛片 | 日韩精品第一 | 河南毛片| 欧美日韩国产成人综合在线 | 日韩在线视频精品 | 男女午夜性爽快免费视频不卡 | 亚洲嗯啊 | 黄色午夜视频 | 在线免费污视频 | 国产一区二区三区不卡免费观看 | 天天摸夜夜摸狠狠摸夜夜摸 | 天天操天天操天天操天天操 | 三级在线观看 |