淚目!跳槽太不容易,螞蟻金服三輪面試,四個(gè)小時(shí)靈魂拷問
本人是雙非院??瓢嘌芯可?,Java開發(fā)3年工作經(jīng)驗(yàn),以下是最近的面試總結(jié):
先說下我的面試準(zhǔn)備經(jīng)歷,為了保證自己簡(jiǎn)歷有較大一定的概率通過篩選,我在2018畢業(yè)后面試了多家公司,去了一家上海一家小公司一直工作到今年5月。
和往年相比,今年的金三銀四看上去不是那么順利,可能和我的準(zhǔn)備不足有關(guān),但是令我驚訝的是第一家給我面試機(jī)會(huì)的公司竟然是阿里巴巴。一開始接到面試通知時(shí),心情特別復(fù)雜,緊張又興奮,阿里巴巴是出了名的深挖項(xiàng)目實(shí)戰(zhàn),實(shí)際上我項(xiàng)目部分是相對(duì)薄弱的。這次面試,一共三輪,共計(jì)四個(gè)小時(shí)左右,這三輪面試對(duì)我來說,簡(jiǎn)直是靈魂拷問,至于結(jié)局,往下看吧!

第一輪面試:1小時(shí)28分鐘
面試官問的面試題:
最近做的項(xiàng)目介紹一下
做的過程中遇到了什么問題,如何解決的
redis集群高可用原理,一臺(tái)掛了,怎么切換到另一臺(tái)
如何保證redis和mysql數(shù)據(jù)一致
數(shù)據(jù)庫(kù)事務(wù)
很大的表如何優(yōu)化
limit的局限性,limit值很大的時(shí)候有什么問題
mysql鎖介紹一下,有哪些應(yīng)用場(chǎng)景
索引失效的場(chǎng)景
線程的生命周期
線程池很高怎么處理
在分布式任務(wù)中,一個(gè)微服務(wù)的很多線程報(bào)錯(cuò),如何處理和定位
JVM內(nèi)存分為哪幾塊
介紹一下垃圾回收機(jī)制
有沒有閱讀JDK源碼的習(xí)慣
第二輪面試:1小時(shí)11分鐘
ThreadLocal原理,放在堆還是棧。用過嗎?
Sync 可以作用在哪里? 有什么區(qū)別?Sync的底層原理?
輕量級(jí)鎖升級(jí)成重量級(jí)鎖會(huì)有開銷?有沒有什么辦法讓鎖不升級(jí)?上來就用重量級(jí)鎖?
aop原理,實(shí)際使用過嗎?
Springboot的使用過程中,有哪些覺得比較方便的地方?
對(duì)spring的核心原理有哪些了解?會(huì)根據(jù)所答來進(jìn)行深入的問。
Spring實(shí)例化bean的時(shí)候會(huì)實(shí)例化所有的bean嗎?
Spring實(shí)例化的時(shí)候需要先構(gòu)建一個(gè)實(shí)例嗎?
Bean的循環(huán)依賴是怎么解決的?
項(xiàng)目中為什么使用Redis?
Redis的性能優(yōu)化你如何實(shí)現(xiàn)?
從底層實(shí)現(xiàn)角度講講Redis為什么快?
線上Redis有哪些事項(xiàng)需要注意?
線上如何讓Redis 6.x性能發(fā)揮到最大?
線上Redis持久化方案如何選型?為什么?
談?wù)凴edis底層多路復(fù)用實(shí)現(xiàn)細(xì)節(jié)
有沒有使用Redis做過設(shè)計(jì)呢?
JVM的調(diào)優(yōu)大致步驟?
Jvm的收集器有哪些?各自的優(yōu)點(diǎn)和缺點(diǎn)?以及各自的回收算法?
Sql的優(yōu)化?sql語句本身的優(yōu)化?sql所用到索引的優(yōu)化?
哪些情況會(huì)導(dǎo)致sql的索引失效?
索引的底層結(jié)構(gòu)以及優(yōu)缺點(diǎn)?
第三輪面試交叉面:1小時(shí)15分鐘
項(xiàng)目相關(guān)的問題
秒殺項(xiàng)目需要考慮的問題
秒殺場(chǎng)景用到分布式鎖的情況,
服務(wù)隔離是如何做的,假設(shè)沒有分庫(kù)分表的情況下,服務(wù)如何做隔離
數(shù)據(jù)庫(kù)CPU占用率高的原因
磁盤總空間50G,統(tǒng)計(jì)出來的空間有30G,剩余20G可能去哪里了
限流如何去做,不用redis,還可以怎么實(shí)現(xiàn)(令牌桶,滑動(dòng)窗口)
項(xiàng)目轉(zhuǎn)變成微服務(wù)后遇到的問題,如何解決,
分布式事物的實(shí)現(xiàn)原理(我自己引上來的TCC的分布式事物)
RocketMQ問得較多(嗚..沒有答好)
在RocketMQ的群組消費(fèi)中,每個(gè)消費(fèi)組都會(huì)消費(fèi)主題的一份全量消息嗎?為什么?
假設(shè)一個(gè)RocketMQ集群部署在兩個(gè)機(jī)房,每個(gè)機(jī)房都有一些NameServer、Broker和客戶端節(jié)點(diǎn),當(dāng)兩個(gè)機(jī)房間的鏈路中斷時(shí),NameServer、Broker能不能正常提供服務(wù)?為什么?
如果不需要嚴(yán)格順序,為了提升消費(fèi)性能,可以不可以將Consumer設(shè)置為自動(dòng)確認(rèn)消費(fèi)位置,然后批量拉取消息放到內(nèi)存隊(duì)列中,然后異步多線程并行執(zhí)行消費(fèi)業(yè)務(wù)邏輯?為什么?
RocketMQ能不能保證在“從消息生產(chǎn)直到消費(fèi)完成”這個(gè)過程中,消息不重不丟(Exactly once) ?
在RocketMQ的一個(gè)Broker 上,使用一個(gè)消息序號(hào)消費(fèi)某個(gè)隊(duì)列的消息。其中,消息文件(commitlog)的數(shù)量是m個(gè),所有消息文件中的消息條數(shù)是k條,目標(biāo)隊(duì)列對(duì)應(yīng)的索引文件(consumerQueue)的數(shù)量是n個(gè),隊(duì)列中共有j條消息。查找消息的最快時(shí)間復(fù)雜度是多少?O(n)還是O(1),為什么?
RocketMQ使用了哪種零拷貝技術(shù)?
RocketMQ中如何解決重復(fù)消費(fèi)?
Dubbo 有哪些核心組件?底層原理?Spi是什么?spi的好處是什么
最近在學(xué)什么?講講SpringCloud alibaba的一些東西
小結(jié)
項(xiàng)目相關(guān)的問題
螞蟻沒有考算法,基礎(chǔ)知識(shí)也有考一些,感覺更看重眼緣和講項(xiàng)目的能力。
大廠的面試,就是掛和被撈的過程。去年下半年沒面上幾個(gè)鐘意的公司之后,已經(jīng)下決心繼續(xù)打磨一下自己。在今年上半年開始了新的面試。但我目前的簡(jiǎn)歷技能模塊上重點(diǎn)強(qiáng)調(diào)自己對(duì)redis、多線程、jvm、MySQL這些知識(shí)點(diǎn)有比較熟練的掌握(后面二面后我被挖底層挖怕了,以至于我現(xiàn)在簡(jiǎn)歷改成了熟悉掌握)
另外一個(gè)原因就是RocketMQ沒有深入研究過, 答得吞吞吐吐,聊完RockerMQ后, 我把話題轉(zhuǎn)移到Kafka時(shí),聽面試官的語氣停頓了一下,估計(jì)有些小失望吧!但這次經(jīng)歷給我的感受還是很不一樣的
而程序員在應(yīng)聘時(shí)更是需要經(jīng)歷層層面試。俗話說,磨刀不誤砍柴工,做好面試前的準(zhǔn)備工作可以幫助大家更好地應(yīng)對(duì)面試官的問題以及面試中的突發(fā)情況。
總的來說,自己如果有想要去的大公司,一定要提升好自己,讓自己的能力和素質(zhì)與公司匹配的上,我也一直相信,機(jī)會(huì)永遠(yuǎn)是留給有準(zhǔn)備的人。下面這份我經(jīng)常刷的面試手冊(cè),分享給大家~
資料獲取方式:
私信關(guān)鍵詞 【111】即可免費(fèi)獲取到!






資料獲取方式:
私信關(guān)鍵詞 【111】即可免費(fèi)獲取到!