螞蟻金服一面:
下午杭州的電話,問有沒有空,果斷有空,雖然感覺略顯緊張,有點懵逼。
面試的題目:
- 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是如何工作的?
如何快速更新自己的技術積累?
- 在現有的項目里,深挖技術,比如用到netty可以把相關底層代碼和要點都看起來。
- 如果不知道目前的努力方向,就看自己的領導或公司里技術強的人在學什么。
- 知道努力方向后不知道該怎么學,就到處去找相關資料然后練習。
- 學習以后不知道有沒有學成,則可以通過面試去檢驗。
我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、喪失斗志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!
以上面試專題的答小編案整理成面試文檔了,文檔里有答案詳解,以及其他一些大廠面試題目,有需要的朋友點擊這里即可免費領取
m/vip204888/java-p7)**
[外鏈圖片轉存中…(img-L5eBiDKH-1626257253475)]
[外鏈圖片轉存中…(img-NoVPqu0U-1626257253477)]