01 深入瞭解的知識點
- java集合數據結構
- jvm: gc、內存模型、堆分代
- 多線程:volatile、java.util.concurrent包
- spring:啓動、時間
- redis:分佈式鎖、lua保證原子性、集羣
- 消息隊列:kafka
- SpringCloud
- MySql搜索引擎,索引B+tree
02 Java基礎
- NIO模型
- java反射
- java8特性
- java中有哪些集合?各自的數據結構?
- 說說你用過的設計模式
- jdk以及spring中看過哪些設計模式
03 JVM
- jvm結構,以及每⼀部分的作⽤
- jvm中哪些部分會出現oom,出現的可能原因
- 哪些對象會被存放到⽼年代?
- 什麼時候觸發full gc?
- GC算法分類
- 類加載機制以及類加載器,雙親委派機制。
- ⼀個對象被實例化後,在堆中的流轉流程(堆結構以及GC流程)
- jvm調優,寫調優參數。
04 Spring
- spring bean的⽣命週期
- 如何實現spring aop?
- springboot啓動流程?
- Spring中BeanFactory和FactoryBean有什麼區別,factorybean原理?
- Spring事件
- 作⽤域Spring,如果是request⽅式,a依賴b,a是單例⽅式,b是request,會怎麼樣?
05 多線程
- 樂觀鎖、悲觀鎖
- 三種分佈式鎖原理
- 線程池原理,java有哪⼏種線程池?如何創建?
- synchronized特性
- volatile原理
- Threadlocal
- ConcurrentHashMap
- HashMap爲何線程不安全
- java.util.concurrent包下有哪些類?
06 數據結構
- HashMap數據結構?
- ConcurrentHashMap數據結構(jdk1.7 &1.8)?
- ⼆叉樹、平衡樹、紅⿊樹
- B-tree、B+tree
- TreeMap
07 微服務
- 畫springcloud⼯作原理圖
- 描述各個組件的作⽤及原理
- ⼼跳機制
- 限流⽅法
- 服務熔斷、降級與隔離的實現原理
- eureka優缺點
- dubbo的負載均衡⽅式
08 數據庫
- mysql存儲引擎有哪些?他們的區別?
- 數據庫隔離級別有哪些,並說下什麼是髒讀、不可重複讀、幻讀?
- 數據庫事務的四⼤特性ACID?
- mysql調優⽅案?
- 在代碼中,我們如何實現事務?
- 如果在⼀個事務中,代碼業務流程很⻓,會有什麼問題嗎?爲什麼會出現這種問題?
09 zookeeper
- 選舉算法
- 分佈式鎖實現原理、優缺點
- 服務發現與移除原理
10 redis
- 實現機制
- 分佈式鎖,以及要考慮的問題
- 除了加鎖,如何使多個redis命令具有原⼦性(lua腳本)
- redis持久化的原理
- 分佈式鎖,使⽤redis的⽅式,但是redis是集羣的,會有不同步的問題,官⽅⽂檔是怎麼解決的。
11 消息中間件
- 常⻅消息中間件的區別
- kafka的實現原理
- RabbitMQ消息模型
- RabbitMQ如何保證消息可靠性
12 分佈式
- 介紹⼏種分佈式事務,以及優缺點?
- 分佈式服務的原則,什麼情況下要使⽤分佈式開發?
- 使⽤⾃增ID和UUID作爲主鍵有什麼不同?
13 網絡
- tcp三次握⼿、四次揮⼿
- http機制
- https機制
14 項目經驗
- 項目亮點
- 畫架構圖
- 平時看過什麼書