
1. Java后端面試的核心考察維度最近幫團(tuán)隊面試了二十多位Java后端開發(fā)發(fā)現(xiàn)候選人普遍對面試重點把握不準(zhǔn)。作為經(jīng)歷過上百場技術(shù)面試的面試官我來系統(tǒng)梳理下Java后端工程師面試的典型問題結(jié)構(gòu)。不同年限的考察側(cè)重點會有所差異但整體可分為以下幾個核心模塊技術(shù)基礎(chǔ)深度永遠(yuǎn)是第一道門檻。我常對團(tuán)隊成員說框架可以快速上手但底層原理決定成長上限。以最常問的HashMap為例初級工程師可能只需說出基本用法而高級工程師需要解釋紅黑樹轉(zhuǎn)換閾值為什么是8、哈希擾動函數(shù)的設(shè)計意圖、并發(fā)場景下的線程安全問題等細(xì)節(jié)。2. Java語言特性與JVM原理2.1 核心語言機(jī)制對象生命周期管理從new關(guān)鍵字觸發(fā)類加載開始到GC回收內(nèi)存的完整過程。遇到過候選人能說出GC算法卻說不出逃逸分析對棧上分配的影響并發(fā)編程三要素原子性、可見性、有序性在synchronized和volatile中的具體實現(xiàn)。特別注意面試官可能會讓你對比JDK8前后ConcurrentHashMap的實現(xiàn)差異動態(tài)代理實踐手寫JDK動態(tài)代理demo是高頻考題需要說清楚InvocationHandler的回調(diào)時機(jī)。Spring AOP的CGLIB代理要關(guān)注final方法限制提示解釋synchronized鎖升級過程時建議畫出手寫Mark Word結(jié)構(gòu)圖這是區(qū)分普通背誦和真實理解的試金石2.2 JVM調(diào)優(yōu)實戰(zhàn)內(nèi)存模型部分要準(zhǔn)備MAT分析dump文件的完整流程GC日志解讀需要能指出Allocation Failure背后的具體原因最新ZGC的低延遲原理要能說清楚染色指針和內(nèi)存映射的關(guān)系3. 主流框架的深度追問3.1 Spring框架原理IoC容器啟動BeanDefinition的解析過程要能追溯到XML/注解的原始處理點循環(huán)依賴解決三級緩存的具體交互流程要能用序列圖表示事務(wù)傳播機(jī)制結(jié)合數(shù)據(jù)庫隔離級別解釋PROPAGATION_REQUIRES_NEW的實際效果3.2 MyBatis優(yōu)化要點結(jié)果集映射的嵌套查詢性能問題批量插入的ExecutorType選擇策略插件開發(fā)時的攔截點選擇原則4. 數(shù)據(jù)庫與緩存體系4.1 MySQL核心機(jī)制索引失效場景要準(zhǔn)備字段類型隱式轉(zhuǎn)換的具體案例事務(wù)實現(xiàn)UNDO_LOG與MVCC的聯(lián)動機(jī)制常被忽視分庫分表需要能說清楚ShardingSphere的分布式ID生成策略4.2 Redis深度應(yīng)用緩存雪崩的預(yù)防要區(qū)分事前/事中措施熱key問題的解決方案要對比客戶端分片與Redis Cluster持久化策略選擇要結(jié)合業(yè)務(wù)場景說明5. 分布式系統(tǒng)設(shè)計5.1 微服務(wù)治理熔斷降級要能說清Hystrix與Sentinel的閾值計算差異鏈路追蹤需要解釋SpanContext的跨進(jìn)程傳播原理配置中心要對比Apollo與Nacos的推送機(jī)制5.2 消息中間件Kafka的ISR機(jī)制要能推導(dǎo)出min.insync.replicas的設(shè)置依據(jù)RocketMQ的事務(wù)消息要解釋半消息的存儲位置消息堆積處理要區(qū)分消費(fèi)者擴(kuò)容與死信隊列的適用場景6. 系統(tǒng)設(shè)計能力考察6.1 高并發(fā)設(shè)計秒殺系統(tǒng)要重點說明庫存扣減的分布式鎖實現(xiàn)限流算法要能手寫令牌桶的偽代碼分布式ID生成要對比Snowflake與Leaf-segment的優(yōu)劣6.2 故障排查思路線程池滿要能提供jstack的分析路徑慢查詢優(yōu)化要解釋執(zhí)行計劃中的Using filesort內(nèi)存泄漏要說明MAT中Dominator Tree的查看方法7. 項目經(jīng)驗深挖策略面試官通常會選擇你簡歷中最近的一個項目進(jìn)行深度追問建議準(zhǔn)備技術(shù)選型的對比過程比如為什么選MongoDB而不是MySQL遇到的最大技術(shù)挑戰(zhàn)及解決方案如果讓你重構(gòu)會改進(jìn)哪些設(shè)計最近面試中發(fā)現(xiàn)很多候選人在解釋自己項目時存在過度包裝的問題。有個典型案例候選人聲稱使用了分布式事務(wù)最終一致性方案但在追問下無法解釋事件表的具體設(shè)計。我的建議是誠實描述項目真實情況資深面試官更看重解決問題的思路而非技術(shù)名詞的堆砌。8. 編碼能力測試要點白板編碼環(huán)節(jié)常考二叉樹相關(guān)算法最近公共祖先等生產(chǎn)者消費(fèi)者模型的手寫實現(xiàn)多線程交替打印的同步控制特別注意寫完代碼后要主動進(jìn)行邊界測試如輸入null的情況這是展示工程思維的關(guān)鍵時刻。上周有位候選人手寫LRU緩存時沒有處理capacity0的異常情況這比算法本身更影響評價。9. 軟技能與架構(gòu)思維技術(shù)決策的權(quán)衡依據(jù)如CAP的選擇技術(shù)債務(wù)的管理經(jīng)驗跨團(tuán)隊協(xié)作的溝通案例最后給準(zhǔn)備面試的同學(xué)一個忠告系統(tǒng)設(shè)計沒有標(biāo)準(zhǔn)答案但要有清晰的論證邏輯。我曾讓候選人設(shè)計一個分布式鎖服務(wù)優(yōu)秀的回答會先明確業(yè)務(wù)場景鎖持有時間、可用性要求等再推導(dǎo)出合適的技術(shù)方案。