【總介】劍指Offer--面試點全方位複習整理--三年JAVA後端
阿新 • • 發佈:2019-09-08
【模組一】JAVA篇
1、Java基礎
- 面向物件的特徵
- final, finally, finalize 的區別
- int 和 Integer 有什麼區別
- 過載和重寫的區別
- 抽象類和介面有什麼區別
- 說說反射的用途及實現
- JDBC 流程
- equals 與 == 的區別
2、Java集合
- List 和 Set 區別
- List 和 Map 區別
- Arraylist 與 LinkedList 區別
- ArrayList 與 Vector 區別
- HashMap 和 Hashtable 的區別
- HashSet 和 HashMap 區別
- HashMap 和 ConcurrentHashMap 的區別
- HashMap 的工作原理及程式碼實現
- ConcurrentHashMap 的工作原理及程式碼實現
3、Java執行緒併發
--執行緒
- 建立執行緒的方式及實現
- sleep() 、join()、yield()有什麼區別
- 說說 CountDownLatch 原理
- 說說 CyclicBarrier 原理
- 說說 Semaphore 原理
- 說說 Exchanger 原理
- 說說 CountDownLatch 與 CyclicBarrier 區別
- ThreadLocal 原理分析
- 講講執行緒池的實現原理
- 執行緒池的幾種方式
- 執行緒的生命週期
--JMM(Java Memory Model)
--鎖機制
- 說說執行緒安全問題
- volatile 實現原理
- synchronize 實現原理
- synchronized 與 lock 的區別
- CAS 樂觀鎖
- ABA 問題
- 樂觀鎖的業務場景及實現方式
【模組二】JVM篇
【模組三】資料庫篇
1、關係型資料庫:MySQL
2、key-value型資料庫:Redis
【模組四】設計模式篇
【模組五】網路通訊篇
【模組六】Linux篇
【模組七】框架篇
1、Spring
- BeanFactory 和 ApplicationContext 有什麼區別
- Spring Bean 的生命週期
- Spring IOC 如何實現
- 說說 Spring AOP
- Spring AOP 實現原理
- 動態代理(cglib 與 JDK)
- Spring 事務實現方式
- Spring 事務底層原理
- 如何自定義註解實現功能
- Spring MVC 執行流程
- Spring MVC 啟動流程
- Spring 的單例實現原理
- Spring 框架中用到了哪些設計模式
2、Mybatis
3、Spring Boot
4、Spring Cloud
5、微服務
- 前後端分離是如何做的
- 微服務哪些框架
- 你怎麼理解 RPC 框架
- 說說 RPC 的實現原理
- 說說 Dubbo 的實現原理
- 你怎麼理解 RESTful
- 說說如何設計一個良好的 API
- 如何理解 RESTful API 的冪等性
- 如何保證介面的冪等性
- 說說 CAP 定理、 BASE 理論
- 怎麼考慮資料一致性問題
- 說說最終一致性的實現方案
- 你怎麼看待微服務
- 微服務與 SOA 的區別
- 如何拆分服務
- 微服務如何進行資料庫管理
- 如何應對微服務的鏈式呼叫異常
- 對於快速追蹤與定位問題
- 微服務的安全
6、分散式
- 談談業務中使用分散式的場景
- Session 分散式方案
- 分散式鎖的場景
- 分佈是鎖的實現方案
- 分散式事務
- 叢集與負載均衡的演算法與實現
- 說說分庫與分表設計
- 分庫與分錶帶來的分散式困境與應對之策
【模組八】中介軟體篇
【模組九】演算法篇
【模組十】工程篇
需求分析
- 你如何對需求原型進行理解和拆分
- 說說你對功能性需求的理解
- 說說你對非功能性需求的理解
- 你針對產品提出哪些互動和改進意見
- 你如何理解使用者痛點
設計能力
- 說說你在專案中使用過的 UML 圖
- 你如何考慮元件化
- 你如何考慮服務化
- 你如何進行領域建模
- 你如何劃分領域邊界
- 說說你專案中的領域建模
- 說說概要設計
設計模式
- 你專案中有使用哪些設計模式
- 說說常用開源框架中設計模式使用分析
- 說說你對設計原則的理解
- 23種設計模式的設計理念
- 設計模式之間的異同,例如策略模式與狀態模式的區別
- 設計模式之間的結合,例如策略模式+簡單工廠模式的實踐
- 設計模式的效能,例如單例模式哪種效能更好。
業務工程
- 你係統中的前後端分離是如何做的
- 說說你的開發流程
- 你和團隊是如何溝通的
- 你如何進行程式碼評審
- 說說你對技術與業務的理解
- 說說你在專案中經常遇到的 Exception
- 說說你在專案中遇到感覺最難Bug,怎麼解決的
- 說說你在專案中遇到印象最深困難,怎麼解決的
- 你覺得你們專案還有哪些不足的地方
- 你是否遇到過 CPU 100% ,如何排查與解決
- 你是否遇到過 記憶體 OOM ,如何排查與解決
- 說說你對敏捷開發的實踐
- 說說你對開發運維的實踐
- 介紹下工作中的一個對自己最有價值的專案,以及在這個過程中的角色
軟實力
- 說說你的亮點
- 說說你最近在看什麼書
- 說說你覺得最有意義的技術書籍
- 工作之餘做什麼事情
- 說說個人發展方向方面的思考
- 說說你認為的服務端開發工程師應該具備哪些能力
- 說說你認為的架構師是什麼樣的,架構師主要做什麼
- 說說你所理解