上一篇的同學拿到了bigo和騰訊的offer,這一次的分享來自兩位同學的面試綜合,他們分別拿到了菜鳥、嘀嘀、盒馬的多個offer,由于面試的時間跨度時間太長,且面試的部門太多,只能回憶到具體的面試題,無法再具體區(qū)分出幾面了,但是面試真題還是可以拿出來分享一下,且看正文。
菜鳥&滴滴
這些來自第一位同學分享的面試題,由于過于優(yōu)秀,同時面試幾個大廠都已拿到offer,他只能回憶到一些重點的問題。
JVM內存溢出排查?
根據他的描述,JVM內存溢出的排查是個必問點,基本上每個公司都被問到,要知道怎么利用jstat、jmap這些命令結合MAT等工具導出堆棧信息查看分析,如果沒有實戰(zhàn)的經驗,最好平時可以自己模擬一下場景,看看具體怎么處理。
網絡編程相關的提問
因為大家Java可能做業(yè)務相關的需求比較多,如果不是涉及到比如IOT這種和網絡編程相關的話,確實不是很清楚,對于這塊問題他直接回復不清楚,問題也不大。
并發(fā)包相關問題
JUC下的那些常見問題,ConcurrentHashMap、CountDownLatch等等這些都應該要熟悉掌握,面試必考點。
線程池原理
基本也是必問點,也比較簡單。
mysql索引,鎖機制,隔離級別
同上,這個也是比較基礎,必須掌握的點。
Redis連環(huán)炮
Redis連環(huán)炮,數據類型、緩存擊穿、雪崩、穿透、熱key、大key,哨兵、集群,同步機制都應該了然于心。
有一個比較少見的問題,tomcat起兩個war包,怎么識別哪個請求要給到哪個進程?
這個問題同學沒有回答上。(歡迎你留言給出想法哦)
Linux的命令,比如怎么查看給文件按大小排序,主要是查看日志相關的技巧命令
這個在上一篇的快手的面試也有,Linux相關的基本上就是這些了,對于日志的查詢這塊grep、tail等等這些要用的熟練。
volatie內存屏障具體是怎么實現?
關于JMM內存模型相關的知識點,必須要掌握。
JVM啟動參數有哪些,怎么調優(yōu),TLAB是什么,阻塞隊列對比和選擇
JVM調優(yōu),根據實際場景舉例,阻塞隊列的問題上一個同學也碰到了,都是基礎知識,應該掌握,TLAB這個稍微有點不常見。
DDD的理解?
對于阿里來說,很負責任的告訴你,基本上DDD是必問,但是這個基本上只要你有一定的自己的理解就可以了。
Reactor模型
這個問題,至少我在美團、餓了么、阿里多個面試中碰到過,基本也屬于必問的問題。
第一個總結
第一位同學的面試題記憶深刻的就這些了,雖然不多,但是基本上也都覆蓋到了高頻出現的問題,參考價值還是挺大的??偟膩碚f,DDD、Reactor模型可能大部分同學都不是很清楚,可以專門準備一下。
螞蟻金服
CHM結構,線程安全保證,加鎖實現細節(jié)
ConcurrentHashMap7和8的區(qū)別,實現原理這些常考點。
JVM內存結構,垃圾回收原理,GC配合策略,排查過程細節(jié)和調優(yōu)方案
還是一樣的問題,JVM、GC、垃圾收集器,調優(yōu)的方案。
線程安全的本質?
要說到原子性、有序性、可見性的問題。
并發(fā)鎖,AQS原理
都不是難點,頻繁問。
ThreadLocal源碼
多次出現的問題,一定要看書。
mysql 幻讀,怎么加鎖
同樣是多次出現的問題,詳細知識可以百度一下。
秒殺設計
秒殺從流量過濾、緩存、異步隊列、限流、降級這些方面說說就可以了。
亮點項目
亮點、難點項目一般也都是一定會問你的,事先準備,如果項目實在沒有亮點,可以從業(yè)務價值或者一些開源的項目角度來說說,都沒有,咱就聊技術。
淘寶
介紹下項目,整體架構,主要功能
嗯,還是項目,一般都是第一個問題,從項目入手聊技術。
網絡模型,NIO,netty
關于NIO\BIO\AIO必須要了解。
JVM,垃圾回收,調優(yōu),排查思路
看到有多么頻繁的出現了嗎?第幾次了?
Redis為什么快?使用場景?過期策略?
Redis連環(huán)炮,同上。
RocketMQ 場景,如何保證不丟消息?
面阿里可以多準備下RocketMQ相關的,因為無論是開源的ONS還是其他都是基于RMQ的。
Spring Bean 生命周期
??键c,關于Spring相關的面試題其實很少就這么幾個。
線程池參數,執(zhí)行順序,場景?
線程池原理,牢記。
Mysql 存儲引擎,索引
基本上就說InnoDb和Myisam就行了,區(qū)別說清楚。
餓了么
CHM 和 HashTable
還是老問題,就不說了吧。一般都會說到CHM7和8的區(qū)別,實現原理區(qū)別。
JVM 垃圾回收的原理,GC 排查步驟
第N次出現。
volatile,synchronize
SQL 優(yōu)化,事務隔離級別
也是第N次出現了。
MQ的區(qū)別以及選型
要記一下,RMQ、Kafka、RabbitMQ這些區(qū)別,支撐的吞吐量,支持的功能等等。
Redis 分布式鎖
關于分布式鎖,除了基本實現之外,可能還會涉及到一個可重入的實現的問題。
業(yè)務冪等實現
就說自己的業(yè)務中冪等是怎么做的就好了。
分庫分表,MyCat 底層實現原理
MyCat問到原理這個倒是不是很多見,分庫分表的很常見,看我的面試專題系列吧。
監(jiān)控指標,業(yè)務分析,業(yè)務指標
根據自己使用的監(jiān)控系統來說,哪些監(jiān)控項,為什么?告警策略是什么,指標,閾值。
亮點業(yè)務,好的項目
準備好自己的項目,必問。
平時怎么學習的?看什么書?
如果不看書的話,就別吹,一問就露餡。
場景題設計:銀行,人,卡,充值記錄,怎么進行系統設計,怎么支撐高并發(fā)?
這個場景題還比較簡單吧,可以參考看看我的百億級流量怎么處理。
聊項目,聊人生
這是最后一面的最后一個問題,不過當時狀態(tài)不佳,回答的不好,估計就是因為這個錯過了P7,淚奔~~o(>_<)o ~~
盒馬
可能知道我其他BU已經到了終面,沒怎么問基礎,主要問的都是項目亮點,設計,發(fā)展之類的。
總結
第二位同學也是拿到了餓了么、盒馬、淘寶的多個offer,很多人也許看了會說,啊,這很簡單啊,我上我也行,不,我覺得你上你真不一定行,面試題寫出來給你看和當場面試的感受還是不太一樣的,很多細節(jié)的問題從羅列出來的知識點是體現不出來的。而且個人狀態(tài)、情緒都會對發(fā)揮產生影響。
關于這個我突然想到知乎的一個問題“你的編程水平從什么時候開始突飛猛進的?”,我想了很久都沒想好怎么回答,就是突然回頭發(fā)現自己之前怎么寫的代碼那么爛?包括現在都會回頭看我為什么當時的邏輯是這樣寫的?好像,不管面試還是平時,其實都是靠著水滴石穿的功夫罷了。
對吧,哪有那么多突飛猛進,歲月靜好,不過是每天都在負重前行罷了。
- END -喜歡本文的朋友,歡迎關注公眾號?程序員小灰,收看更多精彩內容
點個[在看],是對小灰最大的支持!
免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯系我們,謝謝!