美團面試經(jīng)歷+答案

我認識不少在美團工作的朋友默赂,從他們口中得知美團的技術(shù)面試,面試官都會從幾百道基礎(chǔ)題中隨機拿十來道來考察應(yīng)聘者的基礎(chǔ)實力方库,只有過了這些基礎(chǔ)才會有下文吕嘀,我記得我的讀者中曾經(jīng)有一位分享過美團的面試成功的經(jīng)歷《圈內(nèi)小伙伴美團點評校招面試經(jīng)驗分享》,而今天分享經(jīng)歷的這位小伙伴還是有點遺憾翎卓,掛在最后一輪契邀。

原文如下。

一面

1失暴、自我介紹

答:自我介紹是面試中唯一的自己主動介紹自己的環(huán)節(jié)坯门,一定要好好把握好微饥,你數(shù)據(jù)結(jié)構(gòu)學的號可以手撕一個紅黑樹你就說我數(shù)據(jù)結(jié)構(gòu)掌握地很好,反正就是要把自己的優(yōu)勢凸顯出來古戴,比如我是保研的以及對于java的知識較熟悉欠橘,我介紹完自己的本科經(jīng)歷以后,我就說我是保送到本校繼續(xù)讀研究生现恼,然后最末尾會加上自己熟悉java肃续,然后面試官就會問java的一些東西;

2叉袍、項目介紹及其亮點

答:開始吹牛逼始锚。。喳逛。

3瞧捌、Java的8種數(shù)據(jù)類型有哪些?

答:感覺這個問題被問爛了润文,int,short,long,float,double,byte,boolean,char;

3姐呐、問了Integer緩存數(shù)據(jù)的范圍?

答:-128-127

4典蝌、緊接著問了Object類有哪些方法曙砂?

答:這個我有背過,clone,getClass,toString,finalize,equals,hashCode,wait,notify,notifyALL赠法。

5麦轰、問到這里然后拿出了一個題,面試官有小紙條砖织,題目在上面款侵,String A = "123"; String B = new String("123");,問我生成了幾個String對象侧纯?

答:我說如果常量池中新锈,原來沒有“123”那么就是生成了2個對象,如果常量池中有“123”那么只要1個對象生成眶熬。

6妹笆、由于提到了wait,順帶問了wait和sleep有什么區(qū)別?

答:wait 的話會釋放對象鎖娜氏,sleep 的話不會釋放的對象鎖拳缠。

7、由于還提及了hashcode贸弥,面試官接著問我窟坐,hashcode用在哪里?

答:這個我不假思索地說,hashmap和ConcurrentMap哲鸳,這里我猜面試官肯定要繼續(xù)問我這兩個東西了臣疑。

8、果不其然徙菠,面試官說讯沈,講一講hashmap?

答:hashmap我講了hashmap的數(shù)據(jù)結(jié)構(gòu)數(shù)組鏈表結(jié)構(gòu),講了hashmap的put,get,擴容的底層原理婿奔,同時講了hashmap在1.7與1.8中的區(qū)別缺狠,put中引入了紅黑樹,以及擴容的時候不同脸秽,這些就講了挺長時間儒老,最后我說了一句hashmap不是線程安全的蝴乔。

9记餐、這里提及了hashMap是非線程安全的,面試問我為啥不是線程安全的薇正,舉幾個例子片酝?

答:我說了,在擴容的時候hashmap會可能產(chǎn)生環(huán)挖腰,造成死循環(huán)雕沿;hashmap在插入新的階段的時候,多個線程同時插入猴仑,會把除了最后的那個線程的其它線程插入的結(jié)點丟失审轮;對于修改的時候,多個線程修改辽俗,對只保留最后的一個線程的修改結(jié)果疾渣;擴容的時候,會只保留最后一個線程的擴容后的那個數(shù)組崖飘;從擴容修改增加說了一遍榴捡;

10、我本以為要接著問ConCurrentMap朱浴,額吊圾,出乎我的意料,并沒有問翰蠢,可能覺得我hashmap準備的很充分项乒,然后接著問了我JVM了解嗎?

答:我說了解梁沧;

11檀何、讓我說意思JVM的分為哪幾塊?

答:方法區(qū),虛擬機棧埃碱,本地方法棧猖辫,堆,程序計數(shù)器砚殿,然后我就自己沒等面試官問新的問題啃憎,繼續(xù)接著說,方法區(qū)和堆是線程共享的似炎,虛擬機棧本地方法棧和程序計數(shù)器是線程私有的辛萍,除了程序技術(shù)器不會發(fā)生內(nèi)存溢出,其它都會發(fā)生內(nèi)存溢出羡藐,并說了哪些會發(fā)生堆溢出哪些會發(fā)生棧溢出贩毕;這里就是大家要學會自己吧啦吧啦地說一堆,因為據(jù)我觀察每個面試官面試每個是有一個固定時間的仆嗦,超過這個時間段就結(jié)束了辉阶,所以只要面試官不打斷你,你就一頓說瘩扼;

12谆甜、由于提及到了內(nèi)存溢出,面試官問我內(nèi)存溢出和內(nèi)存泄漏的區(qū)別集绰?

答:內(nèi)存泄露我說就是一塊申請了一塊內(nèi)存以后规辱,無法去釋放掉這塊內(nèi)存,丟失了這段內(nèi)存的引用栽燕;內(nèi)存溢出就是申請的內(nèi)存不夠罕袋,撐不起我們需要的內(nèi)存;

13碍岔、這里問完我就去問了數(shù)據(jù)庫浴讯,4大特性是啥,舉個例子付秕?

答:原子性兰珍,我說就是一個事務(wù)要么全部完成,要么全部失敗询吴,要么做要么不做掠河;一致性,比如a+b=100,一個事務(wù)改變了a比如增加了a的值猛计,那么必須同時改變b唠摹,保證在事務(wù)結(jié)束以后a+b=100依然成立奉瘤,這就是一致性勾拉;持久性,額就是修改完以后双霍,在數(shù)據(jù)庫中生效是永久的均芽;隔離性,我就是說對于A對B進行轉(zhuǎn)賬,A沒把這個交易完成的時候,B是不知道A要給他轉(zhuǎn)錢毕贼。

14待秃、數(shù)據(jù)的隔離級別有啥,每個隔離級別舉個例子淹辞?

答:額,(怎么都要舉例子啊莉给,啊啊啊啊~),內(nèi)心波瀾滞时,臉上面無表情地說:1.未提交讀叁幢,事務(wù)中發(fā)生了修改,即使沒有提交坪稽,其它事務(wù)也是可見的曼玩,舉例子我就說對于一個數(shù)A原來50修改為100,但是我還沒有提交修改窒百,另一個事務(wù)看到這個修改黍判,而這個時候原事務(wù)發(fā)生了回滾,這時候A還是50篙梢,但是另一個事務(wù)看到的A是100顷帖,這就是未提交讀;2.提交讀渤滞,就是說贬墩,對于一個事務(wù)從開始直到提交之前,所做的任何修改是其它事務(wù)不可見的蔼水,舉例就是對于一個數(shù)A原來是50震糖,然后提交修改成100,這個時候另一個事務(wù)在A提交修改之前趴腋,讀取到了A是50吊说,剛讀取完论咏,A就被修改成100了,這個時候另一個事務(wù)再進行讀取發(fā)現(xiàn)A就突然變成100了颁井;3.可重復讀厅贪;可重復讀,就是對于一個記錄讀取多次的記錄是相同的雅宾,舉例就是對于一個數(shù)A讀取的話一直是A养涮,前后兩次讀取到的A是一致的;可串行化讀眉抬,就是說在并發(fā)情況下贯吓,和串行化的讀取的結(jié)果是一致的,沒有什么不同蜀变,這個舉例我就說悄谐,不會發(fā)生臟讀和幻讀;然后數(shù)據(jù)庫這一塊就過去了库北。

15爬舰、接著問我計算機網(wǎng)絡(luò),問了我7層有哪7層寒瓦?

答:物理層情屹,數(shù)據(jù)鏈路層,網(wǎng)絡(luò)層杂腰,傳輸層垃你,會話層,表示層颈墅,應(yīng)用層蜡镶;

16、接著問了我TCP在哪層恤筛,UDP在哪層,HTTP在哪層芹橡?

答:TPC和UDP在傳輸層毒坛,然后HTTP問我在哪個層,我一下有點忘了林说,這個沒答上來煎殷,會去看了是在應(yīng)用層。

17腿箩、問到這里就結(jié)束了豪直,然后面試官問我有啥想問的,我就問如何評價我的面試表現(xiàn)珠移?

答:因為一面都是問基礎(chǔ)的知識弓乙,面試官和我說末融,我感覺你基礎(chǔ)很扎實,他直接和我說我這里的話是通過的暇韧,不知道后面的面試官怎么問你勾习,然后我說了聲謝謝,就去酒店的一個會議廳等待二面懈玻;

二面

一面過了沒多久巧婶,就立馬通知二面了,中途感覺有點餓了涂乌,美團還挺人性話的艺栈,在后面的桌子上放了一堆餅干,忘了餅干的名字了湾盒,總之特別好吃湿右,我吃了好幾塊。

1历涝、自我介紹

2诅需、項目介紹,及其亮點介紹荧库。

答:繼續(xù)吹牛逼堰塌。

3、然后問了我集合了解嗎分衫,讓我說話ArrayList和LinkedList的區(qū)別场刑?

答:ArrayList底層是數(shù)組,LinkedList底層是鏈表蚪战,ArrayLIst查找數(shù)據(jù)快牵现,LinkedList插入刪除快;

4邀桑、繼續(xù)問我linkedList可以用for循環(huán)遍歷嗎瞎疼?

答;能不用盡量不要用,linkedList底層是鏈表壁畸,它使用for進行遍歷贼急,訪問每一個元素都是從頭開始訪問然后直到找到這個元素,比如說找第三個節(jié)點捏萍,需要先找到第一個節(jié)點然后找到第二個節(jié)點太抓;繼續(xù)找第4個節(jié)點,不是從第三個節(jié)點開始找的令杈,還是從第一個節(jié)點開始走敌,所以非常的慢,不推薦逗噩,可以用迭代器進行遍歷掉丽。

5跌榔、介紹一下ConCurrenthashmap

答:我感覺是因為一面問了hashmap,所以二面面試官可能是看見了面試記錄机打,額矫户,這塊我非常熟,這個我又講了很長時間残邀,講了ConCurrentHashMap的底層的分段鎖的結(jié)構(gòu)皆辽,講了ConCurrentHashmap的get源碼,get源碼是沒有使用鎖的芥挣,這里我把get源碼背寫了下來驱闷,并給面試官講了get源碼在插入修改刪除的多線程下是安全的;然后講了put操作空免,remove,擴容操作空另,然后講了在1.7和1.8的區(qū)別,引入了紅黑樹蹋砚,鏈表長度大于8轉(zhuǎn)換成紅黑樹扼菠,采用了CAS+synchronized來保證并發(fā)安全,吧啦吧啦又講了挺長時間坝咐;

6循榆、來看看這道題,說著拿出來一個小紙條

答:這個紙條感覺每個面試官都是只有紙條墨坚,所以盡可能地和周圍的同學多交流秧饮,有一定的肯可能他的面試官就你的面試官。題目:讓我自己手算a,b,c,d的值泽篮。

結(jié)果是a = 8b=5,c=7,d=35.計算完我問他對不對盗尸,他沒勒我。帽撑。泼各。

7、然后問我單利模式了解不亏拉,寫一個單例模式历恐?

答:這個之前準備過,我寫了一個雙重鎖的單例模式专筷。

8、接著問了我虛擬機了解嗎蒸苇,介紹一些虛擬機的內(nèi)存模型磷蛹?

答:這個之前也準備過,這里要注意了溪烤,虛擬機的內(nèi)存模型和運行時的數(shù)據(jù)區(qū)域不是一回事味咳;虛擬機內(nèi)存模型又叫JMM庇勃,就是每個線程有自己的工作內(nèi)存,然后又一個主內(nèi)存槽驶,線程工作的時候都是在自己的工作內(nèi)存中拷貝一個主內(nèi)存的副本责嚷;還說了JMM的happens before原則,程序順序原則掂铐,鎖原則罕拂,線程中斷原則,傳遞性原則全陨,還有其他的沒想起來就沒說了爆班。

9、介紹一些你了解的垃圾回收算法辱姨?

答:標記清除柿菩,標記整理,復制算法雨涛,把每個算法是啥說了一遍枢舶;

10、問到這里替久,問了我你知道SurvivorRatio這個參數(shù)為啥初始是默認的8:1:1嗎凉泄?

答:這個由于剛才剛問了垃圾回收算法,我覺得可能有關(guān)聯(lián)侣肄,于是我說旧困,方便復制算法操作,Eden區(qū)域大多數(shù)都是朝生夕死的稼锅,這個比例吼具,可以方便復制算法的中from和to來回進行復制存活的對象,額矩距,說完拗盒,他沒有說啥,感覺是默許了吧锥债;

11陡蝇、突然又問,二叉樹了解嗎哮肚,寫一個二叉樹的深度搜索遍歷登夫?

答:當時我聽到中道題,有點懵允趟,什么是二叉樹的深度搜索遍歷恼策,我只知道層次遍歷,前序后序中序遍歷啊潮剪,我想了想涣楷,感覺和后序遍歷挺像的分唾,我覺得應(yīng)該就是后序遍歷吧,我就先寫了個后序遍歷的遞歸寫法狮斗。

然后他看了一眼绽乔,沒說啥,感覺這個面試官有點話少冷淡碳褒,全程不和我互動折砸,emmmm....下來自己百度了下,對的骤视。鞍爱。。

這個代碼問完我专酗,讓后讓我去等通知睹逃,我感覺回答的還行,果然沒過幾分鐘祷肯,通知我去三面沉填;

三面

1、照例自我介紹和項目介紹佑笋;

2翼闹、上來就讓我手撕一個單例模式。蒋纬。猎荠。

答:繼續(xù)寫我的雙重鎖模式

3、讓我講了講代碼是啥啥意思蜀备?

答:STEP 1. 線程A訪問getInstance()方法关摇,因為單例還沒有實例化,所以進入了鎖定塊碾阁。STEP 2. 線程B訪問getInstance()方法输虱,因為單例還沒有實例化,得以訪問接下來代碼塊脂凶,而接下來代碼塊已經(jīng)被線程1鎖定宪睹。STEP 3. 線程A進入下一判斷,因為單例還沒有實例化蚕钦,所以進行單例實例化亭病,成功實例化后退出代碼塊,解除鎖定嘶居。STEP 4. 線程B進入接下來代碼塊命贴,鎖定線程,進入下一判斷,因為已經(jīng)實例化胸蛛,退出代碼塊,解除鎖定樱报。STEP 5. 線程A初始化并獲取到了單例實例并返回葬项,線程B獲取了在線程A中初始化的單例。大體是這么回事迹蛤。

4民珍、由于我的項目中提及到JVM,所以給我出了一個場景題盗飒,垃圾會收器中嚷量,標記清除多次后,由于采用的是標記清除算法逆趣,那么你覺得可能會出現(xiàn)什么問題蝶溶?

答:然后我說由于產(chǎn)生了內(nèi)存碎片,所以當分配一個大對象的時候宣渗,由于內(nèi)存不連續(xù)抖所,那么會產(chǎn)生full GC。

5痕囱、這里提及到了full gc,問我田轧,哪些情況會產(chǎn)生full GC,哪些情況產(chǎn)生minor GC?

答:minor會產(chǎn)生在eden區(qū)滿了,fullGC產(chǎn)生在老年代的剩余空間不足鞍恢,以及永久代內(nèi)存不足也會發(fā)生fullGC傻粘。

6、除了你項目中的內(nèi)存溢出問題帮掉,你還知道哪些關(guān)于內(nèi)存溢出內(nèi)存泄漏的弦悉?

答:這里之前了解過ThreadLocal,我說,ThreadLocal中的鍵值對中的鍵是一個弱引用旭寿,那么在內(nèi)存回收的時候警绩,這個鍵很可能會被回收掉,然后鍵沒了盅称,就無法找到value的值肩祥,造成了內(nèi)存泄漏;

7缩膝、然后給我出了一個動態(tài)規(guī)劃的手寫代碼題混狠,說來寫個代碼吧,大體是在n*m的矩陣方格中疾层,找一個最大的正方形是幾乘幾的将饺,有點忘了。

答:由于沒有準備過動態(tài)規(guī)劃的題目橱鹏,這個題目看到我只說了暴力解決的方法卖子,然后面試官提示讓我用動態(tài)規(guī)劃做郑兴,我想了半天沒想出來犹菇。蜘矢。逸尖。崔泵。當時感覺應(yīng)該是涼了颠通。蚓庭。致讥。

時間差不多的時候,面試官說器赞,就到這里吧垢袱,然后讓我出去等通知,果然通知我今天面試結(jié)束了港柜,整整一個下午请契,特別特別累,前兩面結(jié)束的時候感覺特別穩(wěn)潘懊,沒想到最后還是因為手寫代碼這一塊不會動態(tài)規(guī)劃掛掉了姚糊,當時感覺心態(tài)有點崩。授舟。救恨。

結(jié)束語

最終美團面試還是掛了,释树,肠槽,留下了沒有技術(shù)的眼淚。奢啥。秸仙。所以痛下決心要好好學習算法,這不今天又刷了一道 leetcode桩盲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末寂纪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子赌结,更是在濱河造成了極大的恐慌捞蛋,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件柬姚,死亡現(xiàn)場離奇詭異拟杉,居然都是意外死亡,警方通過查閱死者的電腦和手機量承,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門搬设,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穴店,“玉大人,你說我怎么就攤上這事拿穴∑矗” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵贞言,是天一觀的道長斜棚。 經(jīng)常有香客問我,道長该窗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任蚤霞,我火速辦了婚禮酗失,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘昧绣。我一直安慰自己规肴,他們只是感情好,可當我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布夜畴。 她就那樣靜靜地躺著拖刃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪贪绘。 梳的紋絲不亂的頭發(fā)上兑牡,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音税灌,去河邊找鬼均函。 笑死,一個胖子當著我的面吹牛菱涤,可吹牛的內(nèi)容都是我干的苞也。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼粘秆,長吁一口氣:“原來是場噩夢啊……” “哼如迟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起攻走,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤殷勘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后陋气,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劳吠,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年巩趁,在試婚紗的時候發(fā)現(xiàn)自己被綠了痒玩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片淳附。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蠢古,靈堂內(nèi)的尸體忽然破棺而出奴曙,到底是詐尸還是另有隱情,我是刑警寧澤草讶,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布洽糟,位于F島的核電站,受9級特大地震影響堕战,放射性物質(zhì)發(fā)生泄漏坤溃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一嘱丢、第九天 我趴在偏房一處隱蔽的房頂上張望薪介。 院中可真熱鬧,春花似錦越驻、人聲如沸汁政。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽记劈。三九已至,卻和暖如春并巍,著一層夾襖步出監(jiān)牢的瞬間目木,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工履澳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嘶窄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓距贷,卻偏偏與公主長得像柄冲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子忠蝗,可洞房花燭夜當晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 本文作者在一年之內(nèi)參加過多場面試现横,應(yīng)聘崗位均為 Java 開發(fā)方向。在不斷的面試中阁最,分類總結(jié)了 Java 開發(fā)崗位...
    TheOne_6e96閱讀 895評論 0 9
  • 所有知識點已整理成app app下載地址 J2EE 部分: 1.Switch能否用string做參數(shù)戒祠? 在 Jav...
    侯蛋蛋_閱讀 2,412評論 1 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,090評論 1 32
  • 互聯(lián)網(wǎng)提前批基本告一段落配阵,大大小小的offer也拿了一些馏颂,秉著回報社會示血,堅持中國特色社會主義,挽救新一代碼農(nóng)的思想...
    java成功之路閱讀 455評論 0 0
  • 作為一個男人救拉,永遠奔跑在路上难审。你不一定英俊,也不一定瀟灑亿絮,但你要懂得擔當告喊、胸懷要大。你不一定有卓越的才華派昧,只要你能...
    秦時明月wk閱讀 3,381評論 55 115