硬核乾貨!2020最新Java最多見面試題彙總。Guide哥傾心整理!

內容來自 Guide 哥的讀者朋友大廠的真實面試經歷,Guide哥整理!但願經過這些問題,可以讓你們學習更有方向,而不是單純把這些問題都背會了!html

另外,內容會繼續完善,歡迎你在評論區說出你遇到的高頻面試題!java

華爲雲開年採購季!新用戶享1核2G雲服務器79元/年,老用戶推薦獲購買資格!git

Java

Java 基礎這部分一些簡單的問題就直接沒有放上來。github

基礎:面試

  1. Java 反射?反射有什麼缺點?你是怎麼理解反射的(爲何框架須要反射)?
  2. 談談對 Java 註解的理解,解決了什麼問題?
  3. 內部類瞭解嗎?匿名內部類瞭解嗎?
  4. BIO和NIO區別,4核cpu,100個http鏈接,用BIO和NIO分別須要多少個線程
  5. HashMap的負載因子。

jvm:redis

  1. jvm 內存結構
  2. jvm 調優參數
  3. 什麼是類加載?
  4. 什麼時候類加載?
  5. java的類加載流程?
  6. 知道哪些類加載器。類加載器之間的關係?
  7. 類加載器之間的關係?
  8. 類加載器的雙親委派 (結合tomcat說一下雙親委派)
  9. 爲何須要雙親委派
  10. Java內存模型
  11. 棧中存放什麼數據,堆中呢?
  12. 大對象放在哪一個內存區域
  13. 堆區如何分類
  14. 垃圾回收有哪些算法
  15. GC的全流程
  16. GC中老年代用什麼回收方法?

多線程:算法

  1. Java線程池有哪些參數?阻塞隊列有幾種?拒絕策略有幾種?
  2. 死鎖

設計模式:spring

  1. 閱讀Spring源碼的時候什麼設計模式最讓你影響深入?如何使用?
  2. 單例模式,單例模式的使用場景
  3. 觀察者模式,觀察者模式的使用場景

Spring

  1. spring boot和spring的區別
  2. ioc 和 aop(ioc流程、aop實現原理)、spring aop異常處理、當一段代碼被try catch後再發生異常時,aop的異常通知是否執行,爲何?
  3. spring bean的生命週期說一下
  4. spring data jpa底層是什麼?
  5. hibernate和mybatis區別
  6. spring boot 過濾器
  7. spring boot 攔截器
  8. Spring動態代理默認用哪種
  9. 寫出spring jdk動態代理的實現。
  10. 畫出spring boot處理一個http請求的全過程

推薦數據庫

  1. 手寫實現Spring核心功能: github.com/jinzzzzz/sp…

權限認證

  1. 認證 (Authentication) 和受權 (Authorization)的區別是什麼?
  2. 什麼是Cookie ? Cookie的做用是什麼?如何在服務端使用 Cookie ?
  3. Cookie 和 Session 有什麼區別?如何使用Session進行身份驗證?
  4. 若是沒有Cookie的話Session還能用嗎?
  5. 爲何Cookie 沒法防止CSRF攻擊,而token能夠?
  6. 什麼是 Token?什麼是 JWT?如何基於Token進行身份驗證?
  7. 什麼是OAuth 2.0?
  8. 什麼是SSO(單點登陸)

這部分問題答案整理在了這裏:snailclimb.gitee.io/javaguide/#…設計模式

微服務/分佈式

  1. 爲何要網關?
  2. 限流的算法有哪些?
  3. 爲何要分佈式 id ?分佈式 id 生成策略有哪些?
  4. 瞭解RPC嗎?有哪些常見的 RPC 框架?
  5. 若是讓你本身設計 RPC 框架你會如何設計?
  6. Dubbo 瞭解嗎?Spring Cloud 瞭解嗎?

數據庫

  1. 非關係型數據庫和關係型數據庫的區別?
  2. 事務的四大特性
  3. MySQL 事務隔離級別?默認是什麼級別?
  4. 樂觀鎖與悲觀鎖的區別
  5. 數據庫兩種存儲引擎的區別
  6. 最左前綴匹配原則及它的緣由
  7. 大表優化的思路
  8. where和having的區別
  9. 分庫分表
  10. explain 命令

索引

  1. 如何加快數據庫查詢速度
  2. 彙集索引和非彙集索引的區別
  3. 何時不應使用索引?
  4. 索引底層的數據結構?
  5. B+樹作索引比紅黑樹好在哪裏?

Redis:

  1. 項目中 redis 是怎麼用的?解決了什麼問題?
  2. 說一下有緩存狀況下查詢的流程以及有緩存狀況下修改的流程。
  3. redis有哪些數據結構
  4. redis內存滿了怎麼辦
  5. redis內存淘汰算法除了lru還有哪些
  6. 分佈式緩存可能出現的問題
  7. 緩存穿透問題

網絡

  1. 計算機網絡的一些常見狀態碼
  2. ping 所使用的協議
  3. TCP的三次握手與四次揮手的內容
  4. TCP爲何鏈接是三次握手而斷開是四次握手
  5. TCP與UDP的區別及使用場景
  6. 一次完整的HTTP請求所經的步驟
  7. http 如何保存登陸信息(沒太搞懂意思)
  8. Cookie 和 Session的關係

算法和數據結構

算法

  1. LRU 算法瞭解嗎?你能實現一個嗎?
  2. 寫排序算法(快排、堆排)

數據結構

  1. 布隆過濾器瞭解嗎?

設計題

  1. 假若有10億個數,只有一個重複,內存只能放下5億個數,怎麼找到這個重複的數字?
  2. 如何設計一個秒殺系統(服務端、數據庫、分佈式)?分佈式系統的設計?
  3. 有一個服務器專門接收大量請求,怎麼設計?
  4. 若是讓你本身設計 RPC 框架你會如何設計?
  5. 怎麼快速出現一個stackoverflow錯誤?

其餘問題

  1. 自我介紹。
  2. 說說你的項目中的亮點有哪些。
  3. 畫一下你的項目的架構圖。
  4. Restful 瞭解嗎?簡單說一下本身對它的認識,若是我要返回一個 boolean 類型的數據怎麼辦?

經驗總結

  1. 多面試,不要懼怕失敗,多總結經驗。
  2. 儘早準備,不管是找工做前、面試前仍是面試後。
  3. 熟悉本身的簡歷。
  4. 電話和視頻面試很日常,面試前提早準備一下。
  5. 堅持!offer 雖然可能會遲到,可是隻要不放棄,就必定不會缺席。

推薦

華爲雲開年採購季!新用戶享1核2G雲服務器79元/年,老用戶推薦獲購買資格!

做者介紹: Github 70k Star 項目 JavaGuide(公衆號同名) 做者。每週都會在公衆號更新一些本身原創乾貨。公衆hao後臺回覆「1」領取Java工程師必備學習資料+面試突擊pdf。

相關文章
相關標籤/搜索