Java面試中與原始碼有關的問題分享
在Java面試中,相信大部分應聘者都會遇到喜歡問與原始碼相關問題的面試官。要知道,現在企業都希望招聘到對技術有追求並且擁有持續學習能力的Java程式設計師。通過應聘者對相關問題的回答,面試官能夠快速診斷他是否愛鑽研,願意深入技術原理,而企業需要的恰恰是這種人才。小千彙總了與原始碼相關的問題,希望學員結合所學檢測自己掌握的水平,以及做好應答準備。
對於Java初學者來說,很多程式碼的格式、命名等都需要學習,而好的辦法就是通過開原始碼來學習;在使用第三方框架、中介軟體時,要想了解它們的原理,有效的辦法也是直接看原始碼;只要是人寫的程式碼,就可能存在Bug,通過閱讀原始碼可以好地定位和解決問題。有關原始碼的問題,主要題目如下:
1、你看過哪些原始碼?
2、你能講講HashMap的實現原理嗎?
3、HashMap什麼時候會進行rehash?
4、HashMap什麼時候會進行擴容?
5、HashMap的初始容量設定成多少比較合適呢?
6、結合原始碼說說HashMap在高併發場景中為什麼會出現死迴圈?
7、JDK1.8中對HashMap做了哪些效能優化?
8、HashMap和HashTable有何不同?
9、HashMap 和 ConcurrentHashMap 的區別?
10、ConcurrentHashMap和LinkedHashMap有什麼區別?
11、為什麼ConcurrentHashMap中的連結串列轉紅黑樹的閥值是8?
12、ConcurrentSkipListMap和ConcurrentHashMap有什麼區別?
13、還看過其他的原始碼嗎?Spring的原始碼有了解嗎?
14、SpringBoot的原始碼呢?知道starter是怎麼實現的嗎?
以上問題,學員可以對照自己對原始碼的學習程度給予解答,如果感覺回答上面問題沒有什麼困難,那就說明對原始碼的整體掌握水平很好;如果感覺回答吃力,那就要開始著重學習了。對於原始碼的學習,可以先從全域性出發,通過文件、程式碼結構、架構分層等方面入手,大概瞭解一些各個模組的程式碼都是什麼功能,這樣在後續深入學習的時候便於理解和查詢響應程式碼。
總之,小千希望大家都養成閱讀原始碼的好習慣,也希望大家遇到所有原始碼類面試題都可以輕鬆搞定。