我是怎麼倒在美團第三輪面試之下的

純潔的微笑發表於2022-12-06

我是怎麼倒在美團第三輪面試之下的

說實話,之前我從來沒想過能有大廠會給我機會讓我去面試,一個專科生,不是科班出身,這些硬性條件好像都沒有一個符合的,但是卻獲得了美團的面試機會。很慶幸自己獲得那次機會,也讓我深刻體會到了面試大廠,到底需要你達到什麼樣子的水平。

第一面 -- 30分鐘

說起來第一面還挺有意思的,之前剛剛去外邊面試回來,然後一個電話打了進來,當時沒有指明需要我去現場面試,只是說能否進行一個影片面試或者電話面試,然後邀約時間,就這樣,我就答應了下來,於是在一個夜黑風高的晚上,一個影片電話打了過來。

第一面好像給面試官的印象還不錯,做完自我介紹之後,他隨口提了一句,資料結構怎麼樣?,我回答的是還可以,說實話,我當時虛的要命,因為那時候資料結構我雖然一直在看,也刷過一些題,但是確實不是很熟練,但是這個牛吹出去了,也得繼續把他吹圓滿呀,於是開始了問題。

1. 定義棧的資料結構,在該型別中實現一個能夠得到棧最小元素的 min 函式。

這個問題我在知識星球裡面也分享過了,回答的還可以,當時可能是在刷面試題的時候有印象,然後回答好之後面試官點了點頭,說大致思路是對的,具體的實現就不需要我寫了,於是心驚膽戰的過了這一道題。

2. 你在工作中遇到過棘手的什麼問題麼?可以隨便列舉。

當時聽完這句話,瞬間想爆炸,我當時在想,我要說個空指標會不會被弄死,哈哈哈哈,開玩笑的,當時就回答了幾個在使用框架的時候遇到的一些版本不一致的坑,還有在 Redis 中遇到的因為 GC 的問題導致 Redis 資料異常的一些情況,然後說了我們當時是怎麼處理的,說完自我感覺良好,面試官當時思考了幾分鐘之後,應付的說了兩句話,也沒有發表任何的意見。我當時心裡感覺慌了,完了,第一波這是要涼涼呀,反轉劇情出現,面試官開始和我聊人生,然後問了問年紀,工作了幾年之類的話題,於是30分鐘的電話面試就結束了。

結束通話電話,內心還懵逼中,兩個問題,然後就開始聊人生了?

我是怎麼倒在美團第三輪面試之下的

當時內心已經不抱任何希望了,沒想到第三天電話再次打來,邀約進行現場面試。

第二面 -- 50多分鐘

第二面確實是很全面的面試了,內容包含的挺全面的,從基礎,到框架,到伺服器上的一些 Linux 的一些命令,我給大家簡單的列舉幾個

  1. HashMap 是執行緒安全的嗎?為什麼?

當時聽到這個問題,我就知道還有下文,肯定是不安全的,這還用說,為什麼?我就開始長篇背誦,HashMap 的實現裡沒有鎖的機制,然後巴拉巴拉一大堆,至於為什麼不安全我相信觀眾肯定也都知道,具體的為什麼不安全,請看之前的文章,最近也有一個文章在說 HashMap,重點來了,說完之後,接下來問,如果我要用執行緒安全的,效率還稍微較高的,這時候來了 ConcurrentHashMap 就開始繼續吹了,結果還行,這個問題回答的還可以。之後就是第二個問題了

  1. JVM 的垃圾回收機制你瞭解麼?能簡單說說麼?

這個面試題之前我是有準備過的,然後就開始了我的老年代和新生代的各種垃圾回收機制和演算法,具體文章

[https://mp.weixin.qq.com/s/y0cGrnqFLcRUOTLM-9WOzw]

這個問題回答完,時間才過去20分鐘而已,感覺好煎熬,怎麼辦?硬撐,這2個問題還算是可以的,然後就開始第三道題目了。

  1. 你對設計模式是怎麼理解的,工作中使用過麼?都是怎麼使用的,為什麼會使用呢?

一連串的問題,讓我有點蒙圈,不過我還是比較老實的回答了,設計模式,單例,工廠,策略,然後簡單的說了一下他們在具體工作中我都是怎麼使用的,尤其是寫程式碼的時候會注意到哪些內容。

我是怎麼倒在美團第三輪面試之下的

當時我感覺第四個問題會不會深度更加的大的時候,然後面試官說了一句,你們工作中用的都是什麼框架,你覺得他們都有哪些缺陷?

這個問題丟擲來的時候,我還很開心,結果事實證明,高興過頭是需要付出代價的,我把 Spring, SpringMVC, Mybatis, 都說了,順帶也提了 Hibernate 和Struts2,結果因為我的話多了,面試官問到了那你們用的時候怎麼選型的,為什麼使用 Hibernate 而不適用 Mybatis,區別在哪裡,優點和缺點在哪裡?

這句話說完,內心感覺快涼透了呀,這你讓我說 Spring 和 SpringMVC 還有Mybatis,那我還能扯淡一會,但是你讓我說他們怎麼選型,考慮哪些方面,這個我確實是瞭解的不多呀,我就簡單的說了一下,面試官問了一下,還有呢?我回答的是,我目前瞭解的只有這麼多了,結果可想而知,面試官的臉色已經開始陰雲密佈了。於是開始了不愉快的第四題。

  1. Linux 用的多麼?你們之前公司都是怎麼負責上線的?

由於之前的公司小的很,確實沒什麼可說的,於是我的經典回答,專案第一次部署不是我,我們更改了需求之後都是在測試環境下,然後編譯出相對應的class 檔案,然後做替換,然後我說了我上一家公司的名字,面試官可能百度了一下,確實是個小公司,可能沒有那麼正規,於是這個問題回答的還算湊活,在我看來,可能算是勉勉強強過關了。

  1. 你前端怎麼樣,你們之前公司前端使用的是什麼?你寫前端程式碼麼?

說實話,這個問題有坑,你如果說你不寫,那是不可能的,你如果說你寫,那問題就多了,於是我偷了個巧,說了一句,前端還是寫的,我們大部分寫的都是 JS 程式碼,HTML 和 CSS 程式碼我會改,然後面試官問了幾個常用的 JS 方法,還有常用的前端框架中的幾個知識點,這完美的第二次面試就過去了。

  1. Mysql的儲存引擎你都知道哪些,如何做最佳化等問題。

關於這個確實我不是很擅長,這也可能是我的一個非常薄弱的一個地方,然後我回答的總之不是特別的好,後來回來之後,把關於資料庫的知識,惡補了一下,也曾經寫過一篇文章,專門來談索引的最佳化,和資料庫方面的,有興趣的夥伴可以去看一下。

總體來說,二面結果還行,和我預料的雖然不太一樣,但是效果還可以,出門的時候,如釋重負,感覺空氣都新鮮了好多。

我是怎麼倒在美團第三輪面試之下的

第三面 -- 40多分鐘左右的樣子

第二面面完之後,我當時很慶幸,和麵試官聊得還行,於是,有了第三次的邀約面試,這次面試感覺就不如之前的面試了,總體面試體驗不是很好,因為是第三面了,結果最終倒在了這一輪,成功的被美團拒之門外,這次面試可能確實是一個坎,我給大家說一下都有哪些問題。

  1. 如何排查線上出現的 JVM 的問題。

  2. 給你一個介面,你如何處理重複的請求。

  3. TCP/IP 協議,三次握手和四次揮手到底是怎麼回事。

  4. 分散式的 Session 如何處理。

目前我好像記住的就是這個四個問題了,這四個問題,自我感覺,這四個問題,面試官好像是一點都不滿意,結果不用想,其他的回答上來的問題,記得不太清楚了,其中有何第二輪面試相似的題目,而我,成功的倒在了第三輪面試中。

其實說真的,我沒抱希望能夠進美團,畢竟人家是大廠,問的東西確實很給力,最後的這幾個問題,面試官還給我做了解答,雖然沒有透過面試,但是面試官給我的一些建議我還挺高興的。

面試官最後對我說,其實很多東西底層都是相通的,這些東西有時候你會用,但是你不知道他到底是怎麼實現的,這就有很大的問題了,因為你不知道他怎麼實現,所以當它出現問題的時候,你根本不知道怎麼去處理,所以你現在欠缺的是把如何用變成為什麼用?這句話讓我醍醐灌頂呀,確實,現在太多的東西都知道怎麼用,但是為什麼用,這麼用有什麼好處卻真的不知道。

總結

其實透過這次面試,我也總結出大廠對社招人員的一些要求:

  1. 效能最佳化,資料結構和演算法(非常重要)。

  2. 高併發,怎麼處理這類的事情。

  3. 資料庫的分庫分表,底層實現,索引最佳化。

  4. 基礎(HashMap,JVM,Mybatis,Http,TCP/IP)。

這就是我拜倒在美團門前的一些經驗,希望各位能加快自己的腳步,補充自己的知識,早日進入大廠,完成自己的目標。

我是懿,一個正在被打擊卻努力前進的碼農。

文章來源於Java極客技術 ,作者懿

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

相關文章