java高頻面試

  1. 必須深⼊入了了解的知識點:
    a. java集合數據結構
    b. jvm:gc、內存模型、堆分代
    c. 多線程:volatile、java.util.concurrent包
    d. spring:啓動、時間
    e. redis:分佈式鎖、lua保證原⼦子性、集羣
    f. 消息隊列列:kafka
    g. Springcloud
    h. mysql搜索引擎,索引B+tree
  2. java基礎:
    a. nio模型
    b. java反射
    c. java8特性
    d. java中有哪些集合?各⾃自的數據結構?
    e. 說說你⽤用過的設計模式
    f. jdk以及spring中看過哪些設計模式
  3. jvm:
    a. jvm結構,以及每⼀一部分的作⽤用
    b. jvm中哪些部分會出現oom,出現的可能原因
    c. 哪些對象會被存放到⽼老老年年代?
    d. 什什麼時候觸發full gc?
    e. GC算法分類
    f. 類加載機制以及類加載器器,雙親委派機制。
    g. ⼀一個對象被實例例化後,在堆中的流轉流程(堆結構以及GC流程)
    h. jvm調優,寫調優參數。
  4. spring:
    a. spring bean的⽣生命週期
    b. 如何實現spring aop?
    c. springboot啓動流程?
    d. Spring中BeanFactory和FactoryBean有什什麼區別,factorybean原理理?
    e. spring事件
    f. 作⽤用域spring,如果是request⽅方式,a依賴b,a是單例例⽅方式,b是request,回怎麼樣
  5. 多線程:
    a. 樂觀鎖、悲觀鎖
    b. 三種分佈式鎖原理理
    c. 線程池原理理,java有哪⼏幾種線程池?如何創建?
    d. synchronized特性
    e. volatile原理理
    f. Threadlocal
    g. ConcurrentHashMap
    h. HashMap爲何線程不不安全
    i. java.util.concurrent包下有哪些類?
  6. 數據結構:
    a. HashMap數據結構?
    b. ConcurrentHashMap數據結構(jdk1.7 &1.8)?
    c. ⼆二叉樹、平衡樹、紅⿊黑樹
    d. B-tree、B+tree
    e. TreeMap
  7. 微服務:
    a. 畫springcloud⼯工作原理理圖
  8. List item

b. 描述各個組件的作⽤用及原理理
c. ⼼心跳機制
d. 限流⽅方法:
e. 服務熔斷、降級與隔離的實現原理理
f. eureka優缺點
g. dubbo的負載均衡⽅方式
8. 數據庫:
a. mysql存儲引擎有哪些?他們的區別?
b. 數據庫隔離級別有哪些,並說下什什麼是髒讀、不不可重複讀、幻讀?
c. 數據庫事務的四⼤大特性ACID?
d. mysql調優⽅方案?
e. 在代碼中,我們如何實現事務?
f. 如果在⼀一個事務中,代碼業務流程很⻓長,會有什什麼問題嗎?爲什什麼會出現這種問題?
9. zookeeper:
a. 選舉算法
b. 分佈式鎖實現原理理、優缺點
c. 服務發現與移除原理理
10. redis:
a. 實現機制
b. 分佈式鎖,以及要考慮的問題
c. 除了了加鎖,如何使多個redis命令具有原⼦子性(lua腳本)
d. redis持久化的原理理
e. 分佈式鎖,使⽤用redis的⽅方式,但是redis是集羣的,會有不不同步的問題,官⽅方⽂文檔是怎麼解決的
11. 消息中間件:
a. 常⻅見消息中間件的區別
b. kafka的實現原理理
c. RabbitMQ消息模型
d. RabbitMQ如何保證消息可靠性
12. 分佈式:
a. 介紹⼏幾種分佈式事務,以及優缺點。
b. 分佈式服務的原則,什什麼情況下要使⽤用分佈式開發。
c. 使⽤用⾃自增ID和UUID作爲主鍵有什什麼不不同
13. 源碼:說說你看過的源碼,其中有⽤用到什什麼思想,以及設計模式?
a. spring啓動時創建容器器:AnnotationConfigApplicationContext.refresh()
1 public void refresh() throws BeansException, IllegalStateException {
2 synchronized (this.startupShutdownMonitor) {
3 //設置環境配置參數
4 prepareRefresh();
5
6 //創建beanFactory(同步代碼塊,反射獲取bean)
7 ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
8
9 // 給beanFactory註冊⼀一些標準組件,如ClassLoader,BeanPostProcess
10 prepareBeanFactory(beanFactory);
11
12 try {
13 //設置web⽣生命週期管理理的Scope
14 postProcessBeanFactory(beanFactory);
15
16 //調⽤用所有BeanFactoryProcessor的postProcessBeanFactory()⽅方法
17 invokeBeanFactoryPostProcessors(beanFactory);
18
19 //註冊BeanPostProcessor,BeanPostProcessor作⽤用是⽤用於攔截Bean的創建
20 //如果我們需要在Spring容器器完成Bean的實例例化、配置和其他的初始化前後添加⼀一些⾃自⼰己的邏輯處理理,
21 //我們就可以定義⼀一個或者多個BeanPostProcessor接⼝口的實現,然後註冊到容器器中。
22 registerBeanPostProcessors(beanFactory);
23
24 //初始化消息Bean
25 initMessageSource();
26
27 //初始化上下⽂文的事件多播組件,ApplicationEvent觸發時由multicaster通知給ApplicationListener
28 initApplicationEventMulticaster();
29
30 //ApplicationContext初始化⼀一些特殊的bean
31 onRefresh();
32
33 // Check for listener beans and register them.
34 //註冊事件監聽器器,事件監聽Bean統⼀一註冊到multicaster⾥裏里頭,ApplicationEvent事件觸發後會由multicaster⼴廣播
35 registerListeners();
36
37 //⾮非延遲加載的單例例Bean實例例化
38 finishBeanFactoryInitialization(beanFactory);
39
40 //最後⼀一步,發佈ContextRefreshedEvent事件
41 finishRefresh();
42 }
43 }
b.
14. ⽹網絡相關:
a. tcp三次握⼿手、四次揮⼿手
b. http機制
c. https機制
15. 項⽬目亮點:
16. 畫架構圖:
17. 平時看過什什麼書?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章