我們收集到一位工作四年的研發(fā)人員今年面試美團(tuán)的過程總結(jié)孕蝉,以下為答主的分享
———————分割線———————
到地方先填了一份資料嚣崭,然后就是面談了浅辙。
算法和數(shù)據(jù)結(jié)構(gòu)以及架構(gòu)設(shè)計(jì)方面裕菠,答的很不好删顶,好多都忘了竖螃。
一 .自己實(shí)現(xiàn)一個(gè)hashMap,這個(gè)難不倒我逗余,jdk的源碼中最熟悉的就是Collection包了特咆,使用數(shù)組和內(nèi)部類完成哈希表的數(shù)據(jù)結(jié)構(gòu),再通過hash算法和鏈表操作完成哈希表的插入查詢等操作录粱;
二.并發(fā)編程中的生產(chǎn)者消費(fèi)者模式代碼坚弱,沒寫出來蜀备,忘記了,真是不應(yīng)該哦荒叶,最簡(jiǎn)單的方式就是使用wait和notify去阻塞喚醒(這么基礎(chǔ)的東東我都能忘)
當(dāng)然還有很多優(yōu)雅的寫法碾阁,比如使用可重入鎖(ReentrantLock),使用鎖計(jì)數(shù)器(CountdownLatch)等些楣,當(dāng)時(shí)一種都沒想到脂凶,自責(zé)中。
三 .字符串的一道算法題愁茁,這類小case蚕钦,就是位圖法,毫無壓力的寫出鹅很;
四. 寫一個(gè)自己熟悉的架構(gòu)圖嘶居,于是我把我的老東家的系統(tǒng)架構(gòu)搬了上去,簡(jiǎn)單來說就是通過hessian將前臺(tái)調(diào)用邏輯與后臺(tái)業(yè)務(wù)邏輯解耦促煮,實(shí)體可以通過序列化和反序列化傳遞(這是hessian最擅長干的事情)邮屁,最終提高后臺(tái)業(yè)務(wù)邏輯接口的可重用性以及系統(tǒng)的可維護(hù)性。
還有兩三道題目忘記是什么了菠齿。時(shí)間還是很緊的佑吝,只有一個(gè)小時(shí)時(shí)間。
交卷之后開始面試绳匀。
一面:
繼續(xù)聊了聊jdk的Collection包芋忿。
之前在公司所做項(xiàng)目的部署思想。
二面:
聊聊java并發(fā)鎖機(jī)制疾棵。
為什么要用讀寫鎖而不用synchronized這種同步鎖戈钢。
事務(wù)隔離性的理解。
為什么會(huì)有臟讀是尔,可重復(fù)讀逆趣,提交讀等。
spring的事務(wù)管理是如何實(shí)現(xiàn)的嗜历,編程式如何實(shí)現(xiàn),aop式如何實(shí)現(xiàn)抖所,動(dòng)態(tài)代理的原理是什么梨州,
事務(wù)的傳播性的理解。
總之都是這類比較重視原理的問題田轧,答的還可以吧暴匠,最后就是部門負(fù)責(zé)人來直接面試,談?wù)劄樯峨x職傻粘,期望薪資什么的每窖,也聊了下技術(shù)帮掉。
問我會(huì)不會(huì)來,最后我回答我考慮一下窒典,下周三給回復(fù)蟆炊,然后就離開了。感覺公司環(huán)境很好瀑志,飲料零食什么的都是免費(fèi)吃涩搓。
關(guān)注我的微信公眾號(hào)【互聯(lián)網(wǎng)小靈通】,你要的有趣我都有