我是怎麼倒在美團第三輪面試之下的
說實話,之前我從來沒想過能有大廠會給我機會讓我去面試,一個專科生,不是科班出身,這些硬性條件好像都沒有一個符合的,但是卻獲得了美團的面試機會。很慶幸自己獲得那次機會,也讓我深刻體會到了面試大廠,到底需要你達到什麼樣子的水平。
第一面 -- 30分鐘
說起來第一面還挺有意思的,之前剛剛去外邊面試回來,然後一個電話打了進來,當時沒有指明需要我去現場面試,只是說能否進行一個影片面試或者電話面試,然後邀約時間,就這樣,我就答應了下來,於是在一個夜黑風高的晚上,一個影片電話打了過來。
第一面好像給面試官的印象還不錯,做完自我介紹之後,他隨口提了一句,資料結構怎麼樣?,我回答的是還可以,說實話,我當時虛的要命,因為那時候資料結構我雖然一直在看,也刷過一些題,但是確實不是很熟練,但是這個牛吹出去了,也得繼續把他吹圓滿呀,於是開始了問題。
1. 定義棧的資料結構,在該型別中實現一個能夠得到棧最小元素的 min 函式。
這個問題我在知識星球裡面也分享過了,回答的還可以,當時可能是在刷面試題的時候有印象,然後回答好之後面試官點了點頭,說大致思路是對的,具體的實現就不需要我寫了,於是心驚膽戰的過了這一道題。
2. 你在工作中遇到過棘手的什麼問題麼?可以隨便列舉。
當時聽完這句話,瞬間想爆炸,我當時在想,我要說個空指標會不會被弄死,哈哈哈哈,開玩笑的,當時就回答了幾個在使用框架的時候遇到的一些版本不一致的坑,還有在 Redis 中遇到的因為 GC 的問題導致 Redis 資料異常的一些情況,然後說了我們當時是怎麼處理的,說完自我感覺良好,面試官當時思考了幾分鐘之後,應付的說了兩句話,也沒有發表任何的意見。我當時心裡感覺慌了,完了,第一波這是要涼涼呀,反轉劇情出現,面試官開始和我聊人生,然後問了問年紀,工作了幾年之類的話題,於是30分鐘的電話面試就結束了。
結束通話電話,內心還懵逼中,兩個問題,然後就開始聊人生了?
當時內心已經不抱任何希望了,沒想到第三天電話再次打來,邀約進行現場面試。
第二面 -- 50多分鐘
第二面確實是很全面的面試了,內容包含的挺全面的,從基礎,到框架,到伺服器上的一些 Linux 的一些命令,我給大家簡單的列舉幾個
HashMap 是執行緒安全的嗎?為什麼?
當時聽到這個問題,我就知道還有下文,肯定是不安全的,這還用說,為什麼?我就開始長篇背誦,HashMap 的實現裡沒有鎖的機制,然後巴拉巴拉一大堆,至於為什麼不安全我相信觀眾肯定也都知道,具體的為什麼不安全,請看之前的文章,最近也有一個文章在說 HashMap,重點來了,說完之後,接下來問,如果我要用執行緒安全的,效率還稍微較高的,這時候來了 ConcurrentHashMap 就開始繼續吹了,結果還行,這個問題回答的還可以。之後就是第二個問題了
JVM 的垃圾回收機制你瞭解麼?能簡單說說麼?
這個面試題之前我是有準備過的,然後就開始了我的老年代和新生代的各種垃圾回收機制和演算法,具體文章
[https://mp.weixin.qq.com/s/y0cGrnqFLcRUOTLM-9WOzw]
這個問題回答完,時間才過去20分鐘而已,感覺好煎熬,怎麼辦?硬撐,這2個問題還算是可以的,然後就開始第三道題目了。
你對設計模式是怎麼理解的,工作中使用過麼?都是怎麼使用的,為什麼會使用呢?
一連串的問題,讓我有點蒙圈,不過我還是比較老實的回答了,設計模式,單例,工廠,策略,然後簡單的說了一下他們在具體工作中我都是怎麼使用的,尤其是寫程式碼的時候會注意到哪些內容。
當時我感覺第四個問題會不會深度更加的大的時候,然後面試官說了一句,你們工作中用的都是什麼框架,你覺得他們都有哪些缺陷?
這個問題丟擲來的時候,我還很開心,結果事實證明,高興過頭是需要付出代價的,我把 Spring, SpringMVC, Mybatis, 都說了,順帶也提了 Hibernate 和Struts2,結果因為我的話多了,面試官問到了那你們用的時候怎麼選型的,為什麼使用 Hibernate 而不適用 Mybatis,區別在哪裡,優點和缺點在哪裡?
這句話說完,內心感覺快涼透了呀,這你讓我說 Spring 和 SpringMVC 還有Mybatis,那我還能扯淡一會,但是你讓我說他們怎麼選型,考慮哪些方面,這個我確實是瞭解的不多呀,我就簡單的說了一下,面試官問了一下,還有呢?我回答的是,我目前瞭解的只有這麼多了,結果可想而知,面試官的臉色已經開始陰雲密佈了。於是開始了不愉快的第四題。
Linux 用的多麼?你們之前公司都是怎麼負責上線的?
由於之前的公司小的很,確實沒什麼可說的,於是我的經典回答,專案第一次部署不是我,我們更改了需求之後都是在測試環境下,然後編譯出相對應的class 檔案,然後做替換,然後我說了我上一家公司的名字,面試官可能百度了一下,確實是個小公司,可能沒有那麼正規,於是這個問題回答的還算湊活,在我看來,可能算是勉勉強強過關了。
你前端怎麼樣,你們之前公司前端使用的是什麼?你寫前端程式碼麼?
說實話,這個問題有坑,你如果說你不寫,那是不可能的,你如果說你寫,那問題就多了,於是我偷了個巧,說了一句,前端還是寫的,我們大部分寫的都是 JS 程式碼,HTML 和 CSS 程式碼我會改,然後面試官問了幾個常用的 JS 方法,還有常用的前端框架中的幾個知識點,這完美的第二次面試就過去了。
Mysql的儲存引擎你都知道哪些,如何做最佳化等問題。
關於這個確實我不是很擅長,這也可能是我的一個非常薄弱的一個地方,然後我回答的總之不是特別的好,後來回來之後,把關於資料庫的知識,惡補了一下,也曾經寫過一篇文章,專門來談索引的最佳化,和資料庫方面的,有興趣的夥伴可以去看一下。
總體來說,二面結果還行,和我預料的雖然不太一樣,但是效果還可以,出門的時候,如釋重負,感覺空氣都新鮮了好多。
第三面 -- 40多分鐘左右的樣子
第二面面完之後,我當時很慶幸,和麵試官聊得還行,於是,有了第三次的邀約面試,這次面試感覺就不如之前的面試了,總體面試體驗不是很好,因為是第三面了,結果最終倒在了這一輪,成功的被美團拒之門外,這次面試可能確實是一個坎,我給大家說一下都有哪些問題。
如何排查線上出現的 JVM 的問題。
給你一個介面,你如何處理重複的請求。
TCP/IP 協議,三次握手和四次揮手到底是怎麼回事。
分散式的 Session 如何處理。
目前我好像記住的就是這個四個問題了,這四個問題,自我感覺,這四個問題,面試官好像是一點都不滿意,結果不用想,其他的回答上來的問題,記得不太清楚了,其中有何第二輪面試相似的題目,而我,成功的倒在了第三輪面試中。
其實說真的,我沒抱希望能夠進美團,畢竟人家是大廠,問的東西確實很給力,最後的這幾個問題,面試官還給我做了解答,雖然沒有透過面試,但是面試官給我的一些建議我還挺高興的。
面試官最後對我說,其實很多東西底層都是相通的,這些東西有時候你會用,但是你不知道他到底是怎麼實現的,這就有很大的問題了,因為你不知道他怎麼實現,所以當它出現問題的時候,你根本不知道怎麼去處理,所以你現在欠缺的是把如何用變成為什麼用?這句話讓我醍醐灌頂呀,確實,現在太多的東西都知道怎麼用,但是為什麼用,這麼用有什麼好處卻真的不知道。
總結
其實透過這次面試,我也總結出大廠對社招人員的一些要求:
效能最佳化,資料結構和演算法(非常重要)。
高併發,怎麼處理這類的事情。
資料庫的分庫分表,底層實現,索引最佳化。
基礎(HashMap,JVM,Mybatis,Http,TCP/IP)。
這就是我拜倒在美團門前的一些經驗,希望各位能加快自己的腳步,補充自己的知識,早日進入大廠,完成自己的目標。
我是懿,一個正在被打擊卻努力前進的碼農。
文章來源於Java極客技術 ,作者懿
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31499124/viewspace-2661973/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我倒在了美團面試演算法題:字串大數相加面試演算法字串
- 美團面試官問我: ZGC 的 Z 是什麼意思面試GC
- 面試三輪我倒在了一道sql題上——sql效能優化面試SQL優化
- 我曾經是怎麼做面試官的面試
- Bigo的Java面試,我掛在了第三輪技術面上.........GoJava面試
- 面試官:你給我說一下什麼是時間輪吧?面試
- 我是怎麼做開源的
- 『JVM』我不想知道我是怎麼來滴,我就想知道我是怎麼沒滴JVM
- 疫情之下,這幾款App Store獲獎遊戲是怎麼做出來的?APP遊戲
- 美團一面問我i++跟++i的區別是什麼
- 美團面試,我竟然輸給了氣泡排序。。。面試排序
- 我是設計師面試官,你有什麼想問我的?面試
- 我面試幾乎必問:你設計索引的原則是什麼?怎麼避免索引失效?面試索引
- 美團一面:什麼是CAS?有什麼優缺點?我說我只用過AtomicInteger。。。。
- HashMap?面試?我是誰?我在哪?HashMap面試
- 【Redis面試題】Redis的字串是怎麼實現的?Redis面試題字串
- 談談我是怎麼學習linux的Linux
- 面試官問我:什麼是JavaScript閉包,我該如何回答面試JavaScript
- 輪換代理是什麼?
- 面試官:MySQL的幻讀是怎麼被解決的?面試MySql
- 面試官:一千萬的資料,你是怎麼查詢的?面試
- 美團面試官問:寫一個你認為最好的單例模式?於是我寫了7個面試單例模式
- 面試官問我HTTP,我真的是面試HTTP
- 我們是怎麼做到的:Google I/O Photo BoothGoboot
- 再談“我是怎麼招聘程式設計師的”程式設計師
- Aaron Swartz:我是怎麼招聘程式設計師的程式設計師
- 美團js面試題JS面試題
- 面試官竟然問我訂單ID是怎麼生成的?難道不是MySQL自增主鍵?面試MySql
- 最終一輪面試被 Google 刷掉,這是一種什麼樣的體驗?面試Go
- 當面試遇到 Redis,我作為一個面試官是這麼“刁難”你的!面試Redis
- 面試官:什麼是死鎖?怎麼排查死鎖?怎麼避免死鎖?面試
- 面試官:Java 反射是什麼?我回答不上來!面試Java反射
- "instanceof 的原理是什麼"?大聲告訴面試官,我知道!面試
- 運維告警管理困難重重,我是怎麼做到的運維
- 不要再問我Java程式是怎麼執行的了!Java
- 我是怎麼用跳錶優化搜尋引擎的?優化
- 這是怎麼了啊,我怎麼就是掛載不上啊(轉)
- 執行緒池是怎麼回事(附面試題)執行緒面試題