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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!

發布時間:2024/7/5 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


JavaList面試題匯總

1、List集合:ArrayList、LinkedList、Vector等。

2、Vector是List接口下線程安全的集合。

3、List是有序的。

4、ArrayList和LinkedList數據結構不一樣,前者用在查詢較多的場合,后者適用于插入較多的場合。

5、ArrayList使用的是數組結構,LinkedList使用的是鏈表結構。

6、Jdk1.7之前ArrayList默認大小是10,JDK1.7之后是0,JDK差異,每次約按1.5倍擴容

7、List中的Vector才是線程安全的,其他要實現線程安全使用工具類Collections.synchronizedList(new ArrayList())方法。

8、使用List自身的sort方法,或者使用Collections.sort(list)方法;

9、Arrays.asList使用的是final數組,并且不支持add方法,不支持擴容。

10、List>Array使用toArray方法,Array>List使用Arrays.asList(array)方法,由于它是固定的,不固定的可以使用new ArrayList(Arrays.asList(array))。

11、 ArrayList和LinkedList的區別:

1)ArrayList是實現了基于動態數組的數據結構,LinkedList基于鏈表的數據結構。 (LinkedList是雙向鏈表,有next也有previous)

2)對于隨機訪問get和set,ArrayList覺得優于LinkedList,因為LinkedList要移動指針。

3)對于新增和刪除操作add和remove,LinedList比較占優勢,因為ArrayList要移動數據。

Java Map面試題匯總

1、常用的Map集合:HashMap、HashTable、LinkedHashMap、ConcurrentHashMap。

2、Collection是List、Set父接口不是Map父接口。

3、HashMap不是線程安全的。線程安全的有HashTable、ConcurrentHashMap、SynchronizedMap,性能最好的是ConcurrentHashMap

4、使用HashMap要注意避免集合的擴容,它會很耗性能,根據元素的數量給它一個初始大小的值。

5、HashMap是數組和鏈表組成的,默認大小為16,當hashmap中的元素個數超過數組大小*loadFactor(默認值為0.75)時就會把數組的大小擴展為原來的兩倍大小,然后重新計算每個元素在數組中的位置。

6、按添加順序使用LinkedHashMap,按自然順序使用TreeMap,自定義排序TreeMap(Comparetor c)。

7、HashMap的鏈表結構設計是用來解決key的hash沖突問題的。

8、HashMap的鍵值都可以為NULL,HashTable不行。

9、key的hash沖突,如果key equals一致將會覆蓋值,不一致就會將值存儲在key對應的鏈表中。

10、先根據key的hashcode值找到對應的鏈表,再循環鏈表,根據key的hash是否相同且key的==或者equals比較操作找到對應的值。

11、HashMap不是線程安全的,效率高,允許有null的鍵和值。線程安全,效率低,不允許有null的鍵和值。

12、HashSet和HashTree的區別:HashSet哈希表實現,數據是無序的,可以放入一個null值。TreeSet二差樹實現,數據是自動排好序的,不允許放入null值。

String經典面試題

1、String不是基本數據類型。

2、String是final類型的,不可變。

3、比較字符串的值是否相同用equals,比較字符串對象是否同一個用==。

4、jdk7+中的switch可以使用String類型。

5、創建了兩個,”abc”本身創建在常量池,通過new又創建在堆中。

6、String、StringBuffer、StringBuilder最大的不同是String不可變,后者可變。StringBuffer是線程安全的,StringBuilder線程不安全速度較快。

7、trim去掉字符串首尾的空白字符。

8、既然String是final的,所以不能被繼承。

9、可以自定義java.lang.String類并編譯成功,但不能被加載使用,具體請學習類加載機制。

10、String > byte[] 通過String類的getBytes方法;byte[] > String通過new String(byte[])構造器。

你可能也喜歡:

  • 阿里螞蟻金服中間件(Java 4輪面試題含答案):Redis緩存+線程鎖+微服務等
  • Redis系列教程(八):分布式鎖的由來、及Redis分布式鎖的實現詳解
  • 史上最全Spring面試71題與答案
  • 要成為一個 Java 架構師得學習哪些知識以及方法?
  • 最新2019 螞蟻金服4面(Java)面試題
  • Java經典基礎與高級面試36題和答案

  • 總結

    以上是生活随笔為你收集整理的BAT Java面试笔试33题:JavaList、Java Map等经典面试题!答案汇总!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。