記一次位元組跳動Java研發崗的面試經歷,跪了

歡喜程式設計發表於2021-09-17

前言

提起MySQL,其實網上已經有一大把教程了,為什麼我還要寫這篇文章呢,大概是因為網上很多網站都是比較零散,而且描述不夠直觀,不能系統對MySQL相關知識有一個系統的學習,導致不能形成知識體系。為此我撰寫了這篇文章,試圖讓這些底層架構相關知識更加直觀易懂:

  • 儘量以 圖文 的方式描述技術原理;

  • 涉及到關鍵的技術,附加 官網 或者 技術書籍 來源,方便大家進一步擴充套件學習;

  • 涉及到的 背景知識 儘可能做一個交代,比如討論到log buffer的刷盤方式,延伸一下IO寫磁碟相關知識點。

好了,MySQL從不會到精通系列馬上就要開始了(看完之後還是不會的話..請忽略這句話)。

記一次位元組跳動Java研發崗的面試經歷,跪了

螞蟻金服一面:

下午杭州的電話,問有沒有空,果斷有空,雖然感覺略顯緊張,有點懵逼。

面試的題目:

  1. HashMap和Hashtable的區別

  2. 實現一個保證迭代順序的HashMap

  3. 說一說排序演算法,穩定性,複雜度

  4. 說一說GC

  5. 可以保證的實習時長

  6. 職業規劃

整體來說,一面的基礎性問題比較多,所以博主基本都答出來了,準備過還是有些用處的。所以一面完了感覺還不錯,接著第二天下午就二面了。

Java程式設計師秋招三面螞蟻金服,我總結了所有面試題,也不過如此

螞蟻金服二面

二面是我最慌的面試,因為二面是最關鍵的,是最大的主管面試,所以非常關鍵,整體來說,二面的節奏非常快,和一面完全不同,面試官很希望我言簡意賅的說完答案,所以面的不算很好,當時完了又以為GG了,好在最後還是幸運的過了,面試問題如下:

  1. 自我介紹。

  2. JVM如何載入一個類的過程,雙親委派模型中有哪些方法?

  3. HashMap如何實現的?

  4. HashMap和Concurrent HashMap區別, Concurrent HashMap 執行緒安全嗎, Concurrent HashMap如何保證 執行緒安全?

  5. HashMap和HashTable 區別,HashTable執行緒安全嗎?

  6. 程式間通訊有哪幾種方式?

  7. JVM分為哪些區,每一個區幹嗎的?

  8. JVM如何GC,新生代,老年代,持久代,都儲存哪些東西?

  9. GC用的引用可達性分析演算法中,哪些物件可作為GC Roots物件?

  10. 快速排序,過程,複雜度?

  11. 什麼是二叉平衡樹,如何插入節點,刪除節點,說出關鍵步驟。

  12. TCP如何保證可靠傳輸?三次握手過程?

  13. TCP和UDP區別?

  14. 滑動視窗演算法?

  15. Linux下如何進行程式排程的?

  16. Linux下你常用的命令有哪些?

  17. 作業系統什麼情況下會死鎖?

  18. 常用的hash演算法有哪些?

  19. 什麼是一致性雜湊?

  20. 如何理解分散式鎖?

  21. 資料庫中的正規化有哪些?

  22. 資料庫中的索引的結構?什麼情況下適合建索引?

  23. Java中的NIO,BIO,AIO分別是什麼?

  24. 用什麼工具除錯程式?JConsole,用過嗎?

  25. 現在JVM中有一個執行緒掛起了,如何用工具查出原因?

  26. 執行緒同步與阻塞的關係?同步一定阻塞嗎?阻塞一定同步嗎?

  27. 同步和非同步有什麼區別?

  28. 執行緒池用過嗎?

  29. 如何建立單例模式?說了雙重檢查,他說不是執行緒安全的。如何高效的建立一個執行緒安全的單例?

  30. concurrent包下面,都用過什麼?

  31. 常用的資料庫有哪些?redis用過嗎?

  32. 瞭解hadoop嗎?說說hadoop的元件有哪些?hdfs,hive,hbase,zookeeper。說下mapreduce程式設計模型。

  33. 你知道的開源協議有哪些?

  34. 你知道的開源軟體有哪些?

  35. 你最近在看的書有哪些?

  36. 你有什麼問題要問我嗎?

  37. 瞭解哪些設計模式?說說都用過哪些設計模式

  38. 如何判斷一個單連結串列是否有環?

  39. 作業系統如何進行分頁排程?

  40. 匿名內部類是什麼?如何訪問在其外面定義的變數?

二面面試官問的很急,我答的也快,所以有兩個問題答的不好,但是面試官讓我覺得有一種肅然起敬的感覺,因為他說話比較快,但是都能說到點子上,最關鍵的說的話非常讓人容易接受。

二面過了,當天晚上我就接到了三面的電話(阿里的效率真的讓我瞠目結舌)

Java程式設計師秋招三面螞蟻金服,我總結了所有面試題,也不過如此

螞蟻金服三面

三面已經是交叉面試了,基本都圍繞我的專案展開,我經過前面幾次的面試之後,這個時候已經擁有了很高的面試經驗值了,所以三面的時候我一點不慌了,回答問題非常穩重,三面的問題如下:

  1. 自我介紹,做過什麼專案。

  2. java虛擬機器的區域如何劃分,每一個區的動能,這一塊自由發揮。

  3. 雙親委派模型中,從頂層到底層,都是哪些類載入器,分別載入哪些類?

  4. 有沒有可能父類載入器和子類載入器,載入同一個類?如果載入同一個類,該使用哪一個類?

  5. HashMap的結構,get(),put()是如何實現的?HashMap有哪些問題?

  6. ConcurrentHashMap的get(),put(),又是如何實現的?ConcurrentHashMap有哪些問題? ConcurrentHashMap的鎖是讀鎖還是寫鎖?

  7. HashMap與HashTable的區別

  8. sleep()和wait()分別是哪個類的方法,有什麼區別?synchronized底層如何實現的?用在程式碼塊和方法上有什麼區別?

  9. 什麼是執行緒池?如果讓你設計一個動態大小的執行緒池,如何設計,應該有哪些方法?

  10. 什麼是死鎖?JVM執行緒死鎖,你該如何判斷是因為什麼?如果用VisualVM,dump執行緒資訊出來,會有哪些資訊?這一塊問的很多....問的我懵了. 因為並沒有實際操作過 = =

  11. 檢視jvm虛擬機器裡面堆、執行緒的資訊,你用過什麼命令?我只用過圖形介面VisualVM。。。

  12. 垃圾回收演算法有哪些?CMS知道嗎?如何工作的?

  13. 資料庫中什麼是事務?事務的隔離級別?事務的四個特性?什麼是髒讀,幻讀,不可重複讀?

  14. 資料庫索引的結構有哪些?我說B樹和B+樹,他說只有這兩個嗎。我又說全文倒排索引。然後介紹B+樹的結構。

  15. 資料庫中的分頁查詢語句怎麼寫?

  16. 什麼是一致性雜湊?用來解決什麼問題?

  17. Redis的儲存結構,或者說如何工作的,與mysql的區別?有哪些資料型別?

  18. 專案中用到redis,為什麼選用redis,瞭解其他NoSQL資料庫嗎?在你的專案中是如何運用redis的?key是什麼,value是什麼?

  19. 歸併排序的過程?時間複雜度?空間複雜度?

  20. 你平常用什麼排序?快速排序。說說在那些場景下適用,哪些場景下不適用。

  21. 你在專案中做什麼?因為我用到Solr,他就問我Solr是如何工作的?



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69990490/viewspace-2792693/,如需轉載,請註明出處,否則將追究法律責任。

相關文章