淘寶|螞蟻|菜鳥|盒馬|嘀嘀|餓了麼面經(已拿多個offer)

艾小仙發表於2020-12-15

上一篇的同學拿到了bigo和騰訊的offer,這一次的分享來自兩位同學的面試綜合,他們分別拿到了菜鳥、嘀嘀、盒馬的多個offer,由於面試的時間跨度時間太長,且面試的部門太多,只能回憶到具體的面試題,無法再具體區分出幾面了,但是面試真題還是可以拿出來分享一下,且看正文。

菜鳥&嘀嘀

這些來自第一位同學分享的面試題,由於過於優秀,同時面試幾個大廠都已拿到offer,他只能回憶到一些重點的問題。

JVM記憶體溢位排查?

根據他的描述,JVM記憶體溢位的排查是個必問點,基本上每個公司都被問到,要知道怎麼利用jstat、jmap這些命令結合MAT等工具匯出堆疊資訊檢視分析,如果沒有實戰的經驗,最好平時可以自己模擬一下場景,看看具體怎麼處理。

網路程式設計相關的提問

因為大家Java可能做業務相關的需求比較多,如果不是涉及到比如IOT這種和網路程式設計相關的話,確實不是很清楚,對於這塊問題他直接回復不清楚,問題也不大。

併發包相關問題

JUC下的那些常見問題,ConcurrentHashMap、CountDownLatch等等這些都應該要熟悉掌握,面試必考點。

執行緒池原理

基本也是必問點,也比較簡單。

mysql索引,鎖機制,隔離級別

同上,這個比較基礎,必須掌握的點,如果不是很明白,可以去看我的進大廠系列mysql的專題。

Redis連環炮

Redis連環炮,資料型別、快取擊穿、雪崩、穿透、熱key、大key,哨兵、叢集,同步機制都應該瞭然於心,具體可以看我的進大廠系列redis專題。

有一個比較少見的問題,tomcat起兩個war包,怎麼識別哪個請求要給到哪個程式?

這個問題同學沒有回答上。(歡迎你留言給出想法哦)

Linux的命令,比如怎麼檢視給檔案按大小排序,主要是檢視日誌相關的技巧命令

這個在上一篇的快手的面試也有,Linux相關的基本上就是這些了,對於日誌的查詢這塊grep、tail等等這些要用的熟練。

volatie記憶體屏障具體是怎麼實現?

關於JMM記憶體模型相關的知識點,必須要掌握。

JVM啟動引數有哪些,怎麼調優,TLAB是什麼,阻塞佇列對比和選擇

JVM調優,根據實際場景舉例,阻塞佇列的問題上一個同學也碰到了,都是基礎知識,應該掌握,TLAB這個稍微有點不常見。

DDD的理解?

對於阿里來說,很負責任的告訴你,基本上DDD是必問,但是這個基本上只要你有一定的自己的理解就可以了。

Reactor模型

這個問題,至少我在美團、餓了麼、阿里多個面試中碰到過,基本也屬於必問的問題。

第一個總結

第一位同學的面試題記憶深刻的就這些了,雖然不多,但是基本上也都覆蓋到了高頻出現的問題,參考價值還是挺大的。總的來說,DDD、Reactor模型可能大部分同學都不是很清楚,可以專門準備一下。

螞蟻金服

CHM結構,執行緒安全保證,加鎖實現細節

ConcurrentHashMap7和8的區別,實現原理這些常考點。

JVM記憶體結構,垃圾回收原理,GC配合策略,排查過程細節和調優方案

還是一樣的問題,JVM、GC、垃圾收集器,調優的方案。

執行緒安全的本質?

要說到原子性、有序性、可見性的問題。

併發鎖,AQS原理

都不是難點,頻繁問。

ThreadLocal原始碼

多次出現的問題,一定要看書。

mysql 幻讀,怎麼加鎖

同樣的問題,參考我的進大廠mysql系列。

秒殺設計

秒殺從流量過濾、快取、非同步佇列、限流、降級這些方面說說就可以了。關於秒殺我的文章裡面也寫過了。

亮點專案

亮點、難點專案一般也都是一定會問你的,事先準備,如果專案實在沒有亮點,可以從業務價值或者一些開源的專案角度來說說,都沒有,我們就聊技術。

淘寶

介紹下專案,整體架構,主要功能

嗯,還是專案,一般都是第一個問題,從專案入手聊技術。

網路模型,NIO,netty

關於NIO\BIO\AIO必須要了解。

JVM,垃圾回收,調優,排查思路

看到有多麼頻繁的出現了嗎?第幾次了?

Redis為什麼快?使用場景?過期策略?

Redis連環炮,同上。

RocketMQ 場景,如何保證不丟訊息?

面阿里可以多準備下RocketMQ相關的,因為無論是開源的ONS還是其他都是基於RMQ的。關於MQ可以看我的進大廠系列MQ專題。

Spring Bean 生命週期

常考點,可以看我的進大廠系列Spring專題。關於Spring相關的面試題其實很少就這麼幾個。

執行緒池引數,執行順序,場景?

執行緒池原理,牢記。

Mysql 儲存引擎,索引

基本上就說InnoDb和Myisam就行了,區別說清楚。

餓了麼

CHM 和 HashTable

還是老問題,就不說了吧。一般都會說到CHM7和8的區別,實現原理區別。

JVM 垃圾回收的原理,GC 排查步驟

第N次出現。

volatile,synchronize

一樣的問題,這些問題都可以看我的進大廠Java基礎系列。

SQL 優化,事務隔離級別

也是第N次出現了。

MQ的區別以及選型

要記一下,RMQ、Kafka、RabbitMQ這些區別,支撐的吞吐量,支援的功能等等。

Redis 分散式鎖

關於分散式鎖,除了基本實現之外,可能還會涉及到一個可重入的實現的問題。

業務冪等實現

就說自己的業務中冪等是怎麼做的就好了。

分庫分表,MyCat 底層實現原理

MyCat問到原理這個倒是不是很多見,分庫分表的很常見,看我的面試專題系列吧。

監控指標,業務分析,業務指標

根據自己使用的監控系統來說,哪些監控項,為什麼?告警策略是什麼,指標,閾值。

亮點業務,好的專案

準備好自己的專案,必問。

平時怎麼學習的?看什麼書?

如果不看書的話,就別吹,一問就露餡。

場景題設計:銀行,人,卡,充值記錄,怎麼進行系統設計,怎麼支撐高併發?

這個場景題還比較簡單吧,可以參考看看我的百億級流量怎麼處理。

聊專案,聊人生

這是最後一面的最後一個問題,不過當時狀態不佳,回答的不好,估計就是因為這個錯過了P7,淚奔~~o(>_<)o ~~

盒馬

可能知道我其他BU已經到了終面,沒怎麼問基礎,主要問的都是專案亮點,設計,發展之類的。

總結

第二位同學也是拿到了餓了麼、盒馬、淘寶的多個offer,很多人也許看了會說,啊,這很簡單啊,我上我也行,不,我覺得你上你真不一定行,面試題寫出來給你看和當場面試的感受還是不太一樣的,很多細節的問題從羅列出來的知識點是體現不出來的。而且個人狀態、情緒都會對發揮產生影響。

關於這個我突然想到知乎的一個問題“你的程式設計水平從什麼時候開始突飛猛進的?”,我想了很久都沒想好怎麼回答,就是突然回頭發現自己之前怎麼寫的程式碼那麼爛?包括現在都會回頭看我為什麼當時的邏輯是這樣寫的?好像,不管面試還是平時,其實都是靠著水滴石穿的功夫罷了。

對吧,哪有那麼多突飛猛進,歲月靜好,不過是每天都在負重前行罷了。

- END -

相關文章