寫篇日記總結(jié)一下我最近面試經(jīng)歷吧勃救。
2019年5月1日辦理了離職手續(xù)蒙秒,離開了萬(wàn)通中心晕讲,也算是和我的第二個(gè)東家正式說了再見,其實(shí)還是很喜歡國(guó)貿(mào)的痊班,
這是個(gè)美妙的地方辩块,容納著很多金融界人才們的夢(mèng)想废亭,每每晚上走到這里你會(huì)感嘆帝都的夜景好美豆村,只可惜這里的多數(shù)人都顧不上欣賞這里的風(fēng)景掌动,
每個(gè)人都生活在壓力下粗恢,成為了金錢的奴隸眷射,但這并不是什么壞事妖碉,因?yàn)樗麄兩嫌欣舷掠行∨芬耍砩媳池?fù)著責(zé)任冗茸,也正是他們的身體力行才造就了CBD的繁華夏漱,
而我最終選擇了離開這個(gè)地方。
我從不否認(rèn)我的離開和錢有關(guān)焊切,這確實(shí)是其中一個(gè)因素刹勃,我也像所有人一樣背負(fù)著責(zé)任荔仁,所以我需要錢乏梁,但我更想說這次的離開是為了尋求一個(gè)對(duì)我而言更大的舞臺(tái)遇骑,
讓自己更加快速的沉淀和成長(zhǎng)落萎。我曾經(jīng)試圖向我的領(lǐng)導(dǎo)們陳述我的價(jià)值觀练链,我并不認(rèn)為錢和理想是互斥的,難道賺的越少你的工作就越有價(jià)值么隶糕,很明顯不是的枚驻。
美團(tuán)網(wǎng)
第一個(gè)投的是美團(tuán)網(wǎng),去年剛上市的锉矢,發(fā)展比較迅速、美團(tuán)的技術(shù)在國(guó)內(nèi)也是數(shù)一數(shù)二的绵估。
先填了一份資料国裳,然后是就是面談了
算法和數(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最擅長(zhǎng)干的事情),最終提高后臺(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)吃元莫。
百度
百度今年是停止社招的,大部分部門都不社招只有校招茎截,但也有少數(shù)部門有特批名額,于是就去試了一把撕攒,一面剛來就是寫代碼萍鲸,
一個(gè)單鏈表的算法題目脊阴,寫完,面試官很滿意點(diǎn)點(diǎn)頭备徐,隨后面試官發(fā)問在你的項(xiàng)目中spring是如何管理zookeeper的,答:balabala答朋,
了解zookeeper的leader選取算法嗎梦碗,講一下他的流程,知道zab算法嗎洪规,講一下他的流程印屁,汗,問的問題都太變態(tài)斩例,沒想到會(huì)問的這么深雄人,
zab算法太復(fù)雜了,zab是基于paxos的础钠,而paxos可是獲得圖靈獎(jiǎng)的算法,勉強(qiáng)說了一下叉谜,說的很心虛旗吁,有好多盲點(diǎn)自己也沒搞清楚,
不過好在面試官也不往下問了停局,其實(shí)我估計(jì)他也不見得會(huì)(竊喜)很钓,隨后讓我稍等一下香府;一會(huì)兒過后二面面試官過來了,是個(gè)成熟的大叔码倦,
二面只問了兩個(gè)東西企孩,一個(gè)jvm,一個(gè)并發(fā)編程叹洲,jvm主要是性能調(diào)優(yōu)柠硕,jstack的使用,full GC和minor GC的分析等运提,并發(fā)編程問的很細(xì)蝗柔,
發(fā)問多個(gè)線程達(dá)到同一個(gè)狀態(tài)然后再一起執(zhí)行,達(dá)到某一個(gè)狀態(tài)之后再繼續(xù)并發(fā)執(zhí)行民泵,這種怎么實(shí)現(xiàn)癣丧,答:jdk5之后有一個(gè)CyclicBarrir,
通過這個(gè)來實(shí)現(xiàn),它可以重用等balabala說了一些栈妆,再發(fā)問讀寫鎖中加讀鎖后如何避免寫線程餓死胁编,答:加策略balabala,發(fā)問如何實(shí)
現(xiàn)控制線程在某段時(shí)間內(nèi)完成鳞尔,不完成就撤銷嬉橙,答:實(shí)現(xiàn)Callable接口,返回FutureTask類或者Future接口寥假,然后去觸發(fā)撤銷操作市框。
開始問項(xiàng)目,描述一下對(duì)賬系統(tǒng)糕韧,balabala…數(shù)據(jù)量大嗎枫振,并發(fā)量高嗎,數(shù)據(jù)庫(kù)怎么設(shè)計(jì)的等萤彩,隨后讓我等一會(huì)粪滤,又過來一個(gè)面試官,
問我業(yè)務(wù)雀扶,你在第三方支付公司杖小,能不能講一下支付的技術(shù)流程,balabala…把自己理解的支付流程講了一下愚墓,最后補(bǔ)了一句窍侧,
支付的細(xì)節(jié)業(yè)務(wù)很復(fù)雜,我也沒完全明白呢转绷,汗伟件,讓我等了一會(huì),隨后面試官說你回去等消息吧议经,我想完蛋了吧斧账,難道因?yàn)闃I(yè)務(wù)不熟被刷谴返,
真不甘心;心涼了一個(gè)星期咧织,結(jié)果hr在星期一打電話說讓星期四去最后一面嗓袱,是技術(shù)總監(jiān)的面試,星期四屁顛屁顛的去了
(話說百度大廈離國(guó)貿(mào)太遠(yuǎn)了习绢,地鐵每次要坐一個(gè)半小時(shí)渠抹,我也是跪了),四面開始闪萄,發(fā)問異步處理的冪等性梧却,不是很難,
唯一性索引或者開發(fā)分布式鎖唄败去,隨后風(fēng)格立馬就轉(zhuǎn)了放航,不問技術(shù)了,發(fā)問你覺得你來百度能給百度帶來什么樣的價(jià)值圆裕,
你希望你加入的百度的團(tuán)隊(duì)是一個(gè)什么樣的團(tuán)隊(duì)广鳍,你如何和產(chǎn)品經(jīng)理溝通,假如你和其他研發(fā)接口制定無法統(tǒng)一你該如何解決等吓妆,
一點(diǎn)準(zhǔn)備都沒有赊时,回答的結(jié)結(jié)巴巴很是不好,哎行拢,聽天由命吧祖秒!
阿里巴巴
百度面完等消息,閑來無事查看公司招聘信息剂陡,看到阿里招聘薪資很誘人狈涮。
哈哈狐胎,我就是這樣一個(gè)無節(jié)操的人鸭栖,開始是電話面試,然后是面試握巢,二面和三面晕鹊,主要面試技術(shù)點(diǎn)有
JVM相關(guān):
jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點(diǎn)講講對(duì)象如何晉升到老年代暴浦,幾種主要的jvm參數(shù)等
你知道哪幾種垃圾收集器溅话,各自的優(yōu)缺點(diǎn),重點(diǎn)講下cms
當(dāng)出現(xiàn)了內(nèi)存溢出歌焦,你怎么排錯(cuò)
JVM內(nèi)存模型的相關(guān)知識(shí)了解多少
簡(jiǎn)單說說你了解的類加載器
JAVA的反射機(jī)制
架構(gòu)設(shè)計(jì)與分布式:
tomcat如何調(diào)優(yōu)飞几,各種參數(shù)的意義
常見的緩存策略有哪些,你們項(xiàng)目中用到了什么緩存系統(tǒng)独撇,如何設(shè)計(jì)的屑墨,Redis的使用要注意什么躁锁,持久化方式,內(nèi)存設(shè)置卵史,集群战转,淘汰策略等
如何防止緩存雪崩
分布式集群下如何做到唯一序列號(hào)
設(shè)計(jì)一個(gè)秒殺系統(tǒng),30分鐘沒付款就自動(dòng)關(guān)閉交易
如何做一個(gè)分布式鎖
用過哪些MQ以躯,怎么用的槐秧,和其他mq比較有什么優(yōu)缺點(diǎn),MQ的連接是線程安全的嗎
MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失
分布式事務(wù)的原理忧设,如何使用分布式事務(wù)
什么是一致性hash
說說你知道的幾種HASH算法刁标,簡(jiǎn)單的也可以
什么是paxos算法
redis和memcached 的內(nèi)存管理的區(qū)別等等
后面給了我offer。但是最近996不知道如何選擇见转。
總結(jié):
就寫到這了命雀,寫的有點(diǎn)多了,也算是給這兩個(gè)星期面試做一個(gè)總結(jié)斩箫,查漏補(bǔ)缺吏砂,祝自己好運(yùn)吧,也希望正在求職或者打算跳槽的 程序員看到這個(gè)文章能有一點(diǎn)點(diǎn)幫助或收獲乘客,我就心滿意足了狐血。很多網(wǎng)友都問我技術(shù)這么好是怎么做到的,平常在工作積累和學(xué)習(xí)吧易核。
在這兒免費(fèi)推薦點(diǎn)資料給大伙學(xué)習(xí)
關(guān)注匈织、轉(zhuǎn)發(fā)、評(píng)論持續(xù)分享java 知識(shí)牡直,私信回復(fù)“源碼”贈(zèng)送Spring源碼分析缀匕、Dubbo、Redis碰逸、Netty乡小、zookeeper、Spring cloud饵史、分布式資料