螞蟻金服一面:
下午杭州的電話,問有沒有空,果斷有空,雖然感覺略顯緊張,有點懵逼。
面試的題目:
- HashMap和Hashtable的區別
- 實現一個保證迭代順序的HashMap
- 說一說排序算法,穩定性,複雜度
- 說一說GC
- 可以保證的實習時長
- 職業規劃
整體來說,一面的基礎性問題比較多,所以博主基本都答出來了,準備過還是有些用處的。所以一面完了感覺還不錯,接着第二天下午就二面了。
螞蟻金服二面
二面是我最慌的面試,因爲二面是最關鍵的,是最大的主管面試,所以非常關鍵,整體來說,二面的節奏非常快,和一面完全不同,面試官很希望我言簡意賅的說完答案,所以面的不算很好,當時完了又以爲GG了,好在最後還是幸運的過了,面試問題如下:
- 自我介紹。
- JVM如何加載一個類的過程,雙親委派模型中有哪些方法?
- HashMap如何實現的?
- HashMap和Concurrent HashMap區別, Concurrent HashMap 線程安全嗎, Concurrent HashMap如何保證 線程安全?
- HashMap和HashTable 區別,HashTable線程安全嗎?
- 進程間通信有哪幾種方式?
- JVM分爲哪些區,每一個區幹嗎的?
- JVM如何GC,新生代,老年代,持久代,都存儲哪些東西?
- GC用的引用可達性分析算法中,哪些對象可作爲GC Roots對象?
- 快速排序,過程,複雜度?
- 什麼是二叉平衡樹,如何插入節點,刪除節點,說出關鍵步驟。
- TCP如何保證可靠傳輸?三次握手過程?
- TCP和UDP區別?
- 滑動窗口算法?
- Linux下如何進行進程調度的?
- Linux下你常用的命令有哪些?
- 操作系統什麼情況下會死鎖?
- 常用的hash算法有哪些?
- 什麼是一致性哈希?
- 如何理解分佈式鎖?
- 數據庫中的範式有哪些?
- 數據庫中的索引的結構?什麼情況下適合建索引?
- Java中的NIO,BIO,AIO分別是什麼?
- 用什麼工具調試程序?JConsole,用過嗎?
- 現在JVM中有一個線程掛起了,如何用工具查出原因?
- 線程同步與阻塞的關係?同步一定阻塞嗎?阻塞一定同步嗎?
- 同步和異步有什麼區別?
- 線程池用過嗎?
- 如何創建單例模式?說了雙重檢查,他說不是線程安全的。如何高效的創建一個線程安全的單例?
- concurrent包下面,都用過什麼?
- 常用的數據庫有哪些?redis用過嗎?
- 瞭解hadoop嗎?說說hadoop的組件有哪些?hdfs,hive,hbase,zookeeper。說下mapreduce編程模型。
- 你知道的開源協議有哪些?
- 你知道的開源軟件有哪些?
- 你最近在看的書有哪些?
- 你有什麼問題要問我嗎?
- 瞭解哪些設計模式?說說都用過哪些設計模式
- 如何判斷一個單鏈表是否有環?
- 操作系統如何進行分頁調度?
- 匿名內部類是什麼?如何訪問在其外面定義的變量?
二面面試官問的很急,我答的也快,所以有兩個問題答的不好,但是面試官讓我覺得有一種肅然起敬的感覺,因爲他說話比較快,但是都能說到點子上,最關鍵的說的話非常讓人容易接受。
二面過了,當天晚上我就接到了三面的電話(阿里的效率真的讓我瞠目結舌)
螞蟻金服三面
三面已經是交叉面試了,基本都圍繞我的項目展開,我經過前面幾次的面試之後,這個時候已經擁有了很高的面試經驗值了,所以三面的時候我一點不慌了,回答問題非常穩重,三面的問題如下:
- 自我介紹,做過什麼項目。
- java虛擬機的區域如何劃分,每一個區的動能,這一塊自由發揮。
- 雙親委派模型中,從頂層到底層,都是哪些類加載器,分別加載哪些類?
- 有沒有可能父類加載器和子類加載器,加載同一個類?如果加載同一個類,該使用哪一個類?
- HashMap的結構,get(),put()是如何實現的?HashMap有哪些問題?
- ConcurrentHashMap的get(),put(),又是如何實現的?ConcurrentHashMap有哪些問題? ConcurrentHashMap的鎖是讀鎖還是寫鎖?
- HashMap與HashTable的區別
- sleep()和wait()分別是哪個類的方法,有什麼區別?synchronized底層如何實現的?用在代碼塊和方法上有什麼區別?
- 什麼是線程池?如果讓你設計一個動態大小的線程池,如何設計,應該有哪些方法?
- 什麼是死鎖?JVM線程死鎖,你該如何判斷是因爲什麼?如果用VisualVM,dump線程信息出來,會有哪些信息?這一塊問的很多…問的我懵了. 因爲並沒有實際操作過 = =
- 查看jvm虛擬機裏面堆、線程的信息,你用過什麼命令?我只用過圖形界面VisualVM。。。
- 垃圾回收算法有哪些?CMS知道嗎?如何工作的?
- 數據庫中什麼是事務?事務的隔離級別?事務的四個特性?什麼是髒讀,幻讀,不可重複讀?
- 數據庫索引的結構有哪些?我說B樹和B+樹,他說只有這兩個嗎。我又說全文倒排索引。然後介紹B+樹的結構。
- 數據庫中的分頁查詢語句怎麼寫?
- 什麼是一致性哈希?用來解決什麼問題?
- Redis的存儲結構,或者說如何工作的,與mysql的區別?有哪些數據類型?
- 項目中用到redis,爲什麼選用redis,瞭解其他NoSQL數據庫嗎?在你的項目中是如何運用redis的?key是什麼,value是什麼?
- 歸併排序的過程?時間複雜度?空間複雜度?
- 你平常用什麼排序?快速排序。說說在那些場景下適用,哪些場景下不適用。
- 你在項目中做什麼?因爲我用到Solr,他就問我Solr是如何工作的?
最後
我還爲大家準備了一套體系化的架構師學習資料包以及BAT面試資料,供大家參考及學習,戳這裏免費領取
已經將知識體系整理好(源碼,筆記,PPT,學習視頻)免費領取。
get方式:
更多資源白嫖網站:
全網免費Java資源下載SpringBoot、Spring、Mybatis、Redis、RabbitMQ、SpringCloud、高併發(持續更新)