美團一二三面經歷
繼百度阿里筆試跪掉,cvte一面跪掉,華為簡歷刷掉,騰訊一面跪掉後,
終於有了一次比較完整的筆試面試經歷了。
寫個面經,攢個RP,希望能給發offer
第一次,沒有寫好還請海涵。
我是西安這邊的,首先說一下筆試吧。美團今年的筆試題量非常大,前面8道題,7個寫程式的1個數學期望的。然後後面是幾道不同崗位的選做題。
校招筆試現場人真不是一般的多。。。
中午去的考場比較早,然後出去打了會dota。
從7點到8.30, 寫出來了5個程式。完事就回去等通知了。
過了兩天打來個電話,然後說給我定下來了面試時間了,尼瑪的早上8:30太早了有木有。結果還不能改。。
一大早就去了,預約的是8:30,到的時候好多面試官還沒有睡起來。過了一會,才陸續到來,在那裡待了快一早上,好多面試官都是穿著酒店的一次性拖鞋,話說這是程式設計師的通病麼-_-。。。
等了一會,就開始一面了。
一面的GG大概有30歲左右,去了之後,做了下簡單的自我介紹。
接下來就是問筆試題了。
筆試題是32分-_-,簡直不忍直視啊。不過,美團1個半小時那麼多題,確實有些太緊張了。
他拿出第一道題,一看。疑,你這第一道題寫的有問題啊,還給你滿分。
然後他就讓我開始找。。找了一下沒找到-_-囧。。。
然後他就開始提示了。。
一指一個指標,然後說了一句話,然後我一下就明白問題了。
完了他問,還有什麼問題沒有。
我看了看,他又給我一指,我立馬就說出了問題。沒有對除數為0的情況做檢測。
這種感覺真棒。不給我指出來具體哪裡出錯的原因,只是給我指出來。我想,如果我能夠進入美團的話,一定儘量找那個GG去當我的導師!
接著就開始問專案。
問我專案實現了什麼功能,什麼框架等等。。。
聊了一會,重點來了。讓寫一個兩個連結串列尋找第一個公共結點的程式。
No Problem。 中間寫的時候看見面試官吸了吸鼻子,我就順口說了句感冒了?然後面試官說,嗯,剛來西安這邊就下雨了。
我笑著說。都下了半個月了,多喝點水吧。
程式寫完後,他又出了一個概率題。我擦,我概率論最差了。他可真會挑%>_<%。。。。。。
果然,題目出來了之後我完全就不會(好吧。原諒我。。。我也不想這樣-_-)
接著我就給他說能不能給我換個題目。然後重點來了重點來了。
他說哎,我這呢,就給你過了。但是我告訴你啊,面試中讓面試官換道題目是大忌。。。。你記好了,以後再不能這樣了。
哎媽呀,簡直太親切了,有木有啊有木有。。。我趕緊的就道謝。。。
他又大概給我講了一下,我還是沒聽懂-_-(為什麼我概率論這麼差~~~~(>_<)~~~~ )
面了大概有40分鐘
完事就出去等通知了。。。
在房間外面跟其他西電通訊的研究僧聊了一會,尼瑪的全部都用華為保底,艹。。。。。簡直不忍直視啊。
哎,苦逼的我現在還沒有找到保底的。。。。而且華為尼瑪的還刷學校-_-
二面出現了一點小差錯,一面的GG給我推薦讓我去面前端,然後把我分配到了一個前端的面試官那裡。去了之後,是個好有喜的胖子。然後胖子問我會前端嗎。
我不會額。我html css javascript都好差啊有木有。。。
胖子說OK,好,那我給你找個面試官去,,你是搞Java的對麼,我恩恩。趕緊連忙道謝。。
接著他給我找到了面試官,我在外面又稍微等了一會,然後就被叫進房子裡,開始二面了。
二面貌似是個更年輕的GG了。說不上多大歲數,感覺不到30。
整個過程中,只是讓我不停的說,然後他就問,我哪裡有說的不對的也沒有說糾正提醒一下。。。
然後就開始揪著我的簡歷一個一個一個一個問題的問了。
1.什麼是Sevlet
額,我沒想到他上來就問JavaWeb的這種基礎問題。然後是真的沒答好。。。
就簡單說了一下,是繼承HttpServlet,然後執行緒不安全。然後問還有呢。我恩恩啊啊的。哎。都是眼淚啊。這麼基礎的東西也沒研究。。。尼瑪你咋不問個生命週期呢。。
然後丫就問執行緒哪裡不安全了。我就說啊。這個有多個執行緒併發訪問一個Servelet的話,假如對同一個例項變數同時做修改的話,就會出現執行緒安全問題。
然後丫就問。那解決方案呢?我說嗯,加那個sychronized。 然後又說了兩種使用方式,一種是對方法,一種是對塊。
接著又問,還有什麼解決辦法麼?尼瑪的,瞬間就想到了不用Servlet了,額,不過這個答案肯定是不正確的-_-
然後就突然想到了,可以不用例項變數,而使用區域性變數。
然後還問,那你用那個sychronized過嗎?我說,嗯。單例模式搞過。
然後寫程式碼,還問我為什麼內層巢狀還要有一個判斷為空,然後我balabala又說了兩句
OK!
然後又問我知道sychronized的原理不知道。我說。嗯就是加鎖,對一個物件加鎖。然後他問還有其他形式的加鎖嗎?
我說嗯,還可以用Lock,然後我又說這種方式我沒有使用過。不知道兩者的區別。
完了他又問我有沒有使用過Concurrent包裡的東西。我說額。沒太使用過,僅僅是知道。
2.問專案中的一個多執行緒問題,我是如何保證執行緒安全的,我又說加sychronized同步。
然後又問到有沒有遇到多執行緒死鎖的時候。
然後我就說嗯,以前做過一個程式,往一個HashMap中,多執行緒的新增資料然後就會掛掉。
問我怎樣知道掛掉的。然後我就說看cpu上去了,然後用Jconsole工具連線執行緒檢視堆疊資訊。
然後又問了HashMap HashTable ConcurrentMap的區別。然後我又balala。
3.問專案中HttpClient模擬瀏覽器的問題。
問get方式和post方式各自特點,以及優點。
我就說get和post的一些東西,然後問。post能不能替換掉get。我就語塞了。。。胡亂扯了一下略過了這個問題。
4.看到我專案中使用了Spring,然後讓我介紹一下Spring。
Spring我都忘記具體是怎麼回事了,就給他介紹了一下兩個特性,
IOC和AOP。
IOC是依賴注入,就是在程式裡面不new物件了,再配置檔案裡寫好,讓Spring幫我初始化物件
AOP就是面向切面程式設計。例如要計算一個方法的時間。
定義一個around切點,然後載入這個方法上。然後執行。
問我aop的原理是什麼, 代理模式,Proxy
5.看到我用了資料庫,然後問我有沒有聽過sql注入,讓我說下其原理。
sql注入是一種常見的攻擊方式,以mysql為例,
一般是以資料庫的查詢sql語言中的一些漏洞或者特性,來達到暴庫的目的。
常見的有 and 1=1 ' 之類的。
然後問我怎樣sql注入比較厲害,我回答字典比較豐富。
然後問我怎樣防備,然後我說 匹配sql注入的一些關鍵字元,然後封鎖IP。
6.給出了一個題目,有50個黑球,50個白球,然後兩個盤子,
問怎樣放才能讓兩個盤子取到白球的概率加起來最大。
想了半天也和麵試官溝通了一會。然後得出了答案。
左邊的盤子放1個白球,右邊的盤子放50個黑球,49個白球
三面:
三面是一個看上去就好凶好凶的人,問了很多問題,自己感覺都沒有答好。。。
最後和他又隨便聊了聊,聊了下美團的盈利模式,以及現在主要的轉型一些東西。
PS:美團offer下來了,三方已籤 Yes!