Java面試題 - 高頻題

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 項目經驗

  • 項目亮點
  • 畫架構圖
  • 平時看過什麼書
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章