2020年BAT常見Java筆試題

2020年BAT常見Java筆試題

長沙一度軟件培訓(xùn)      2022-04-04 22:49:01     6

2020年BAT常見Java筆試題,  JavaList面試題匯總  1、List集合:ArrayList、LinkedList、Vector等?! ?、Vector是List接口下線程安全的集合。  3、

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹


  JavaList面試題匯總


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


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


  3、List是有序的。


  4、ArrayList和linkedList數(shù)據(jù)結(jié)構(gòu)不一樣,前者用在查詢較多的場合,后者適用于插入較多的場合。


  5、ArrayList使用的是數(shù)組結(jié)構(gòu),linkedList使用的是鏈表結(jié)構(gòu)。


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


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


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


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


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


  11、ArrayList和linkedList的區(qū)別:


  1)ArrayList是實現(xiàn)了基于動態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu),linkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。(linkedList是雙向鏈表,有next也有previous)


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


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


  JavaMap面試題匯總


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


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


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


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


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


  6、按添加順序使用linkedHashMap,按自然順序使用TreeMap,自定義排序TreeMap(Comparetorc)。


  7、HashMap的鏈表結(jié)構(gòu)設(shè)計是用來解決key的hash沖突問題的。


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


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


  10、先根據(jù)key的hashcode值找到對應(yīng)的鏈表,再循環(huán)鏈表,根據(jù)key的hash是否相同且key的==或者equals比較操作找到對應(yīng)的值。


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


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


  String經(jīng)典面試題


  1、String不是基本數(shù)據(jù)類型。


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


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


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


  5、創(chuàng)建了兩個,"abc"本身創(chuàng)建在常量池,通過new又創(chuàng)建在堆中。


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


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


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


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


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



    以上就是長沙一度軟件培訓(xùn)Java培訓(xùn)機構(gòu)小編介紹的“2020年BAT常見Java筆試題”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。


Java筆試題

培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹防上當。