Java後端工程師:面試題目集錦
項目相關
- 自我介紹
- 項目介紹
- 項目規模
- 線程與併發知識點
- 鎖與synchronized鎖的區別
- MYSQL與MONGODB的區別
- 使用了哪些SpringCloud組件及版本
Spring生態系統
- SpringBoot的核心是什麼
- SpringBoot版本
- 使用了哪些SpringCloud組件
- SpringBoot與SpringCloud的區別
- Spring bean注入方式
- 多數據源配置的Bean命名規範
微服務架構
- 如何拆分微服務模塊
- 在耦合中,業務耦合還是技術耦合優先
- 使用了什麼微服務模式
- API設計中無狀態與有狀態的區別,如何選擇
- 雲部署的默認節點數量
Java相關
- 使用的JDK版本
- Stream底層實現
- 如何調試Stream代碼問題
- Stream組件及底層結構
- 如何實現線程間的消息共享
- 什麼是可重入鎖
- 解釋你對鎖的理解
- JDK8與JDK17的區別
服務器配置
- Tomcat中的默認線程數
- 如何從Tomcat遷移到其他Web服務器
- Nginx反向代理配置
數據庫與緩存
- 如何在項目中創建Redis連接,所需依賴
- 如何使用Jedis創建連接
- Redis事務命令
- SQL場景:部門與員工表的Join查詢,按部門查詢最高薪資
- 左連接的優勢
編程場景
- 使用Java8 API實現按年齡和姓名排序的Person對象
- 輸出兩個字符串之間的共同字符
CI/CD
- Dockerfile編寫經驗
- Jenkins pipeline中的Groovy閉包特性
- Nexus工具的作用
- DevOps實踐經驗
核心概念
- Java內存模型(JMM)概念及作用
- HashMap實現原理及衝突解決
- 代理模式實現(靜態與動態)
- IoC與AOP原理
- 為什麼Redis保持單線程高性能
- Executor線程池參數配置
印度面試官關注點
- Java基礎概念(帶示例)
- 多態的用法
- LinkedList性能及區別
- Maps之間的區別
- 數組處理方案
- Linux命令
- 項目經驗(技術棧:python, angular, control-M)
- 英語能力
英語流利程度
- 無法表達自己 - 基礎差,無法進行自我介紹或項目展示
- 基本/簡單對話 - 基礎一般,能進行準備好的自我介紹
- 日常交流 - 基礎良好,能參與英文會議並理解大部分內容
- 工作交流 - 基礎紮實,能與面試官流暢溝通
- 工作及技術交流 - 精通,能進行無障礙技術討論
其他面試評估點
- 學習方法
- 技術溝通能力
- 客戶溝通經驗
- 項目挑戰與解決方案
- 職業發展規劃
- 技術深度(多線程、數據驗證、前端開發等)