內容來自 Guide 哥的讀者朋友大廠的真實面試經歷,Guide哥整理!但願經過這些問題,可以讓你們學習更有方向,而不是單純把這些問題都背會了!html
另外,內容會繼續完善,歡迎你在評論區說出你遇到的高頻面試題!java
華爲雲開年採購季!新用戶享1核2G雲服務器79元/年,老用戶推薦獲購買資格!git
Java
Java 基礎這部分一些簡單的問題就直接沒有放上來。github
基礎:面試
- Java 反射?反射有什麼缺點?你是怎麼理解反射的(爲何框架須要反射)?
- 談談對 Java 註解的理解,解決了什麼問題?
- 內部類瞭解嗎?匿名內部類瞭解嗎?
- BIO和NIO區別,4核cpu,100個http鏈接,用BIO和NIO分別須要多少個線程
- HashMap的負載因子。
jvm:redis
- jvm 內存結構
- jvm 調優參數
- 什麼是類加載?
- 什麼時候類加載?
- java的類加載流程?
- 知道哪些類加載器。類加載器之間的關係?
- 類加載器之間的關係?
- 類加載器的雙親委派 (結合tomcat說一下雙親委派)
- 爲何須要雙親委派
- Java內存模型
- 棧中存放什麼數據,堆中呢?
- 大對象放在哪一個內存區域
- 堆區如何分類
- 垃圾回收有哪些算法
- GC的全流程
- GC中老年代用什麼回收方法?
多線程:算法
- Java線程池有哪些參數?阻塞隊列有幾種?拒絕策略有幾種?
- 死鎖
設計模式:spring
- 閱讀Spring源碼的時候什麼設計模式最讓你影響深入?如何使用?
- 單例模式,單例模式的使用場景
- 觀察者模式,觀察者模式的使用場景
Spring
- spring boot和spring的區別
- ioc 和 aop(ioc流程、aop實現原理)、spring aop異常處理、當一段代碼被try catch後再發生異常時,aop的異常通知是否執行,爲何?
- spring bean的生命週期說一下
- spring data jpa底層是什麼?
- hibernate和mybatis區別
- spring boot 過濾器
- spring boot 攔截器
- Spring動態代理默認用哪種
- 寫出spring jdk動態代理的實現。
- 畫出spring boot處理一個http請求的全過程
推薦數據庫
- 手寫實現Spring核心功能: github.com/jinzzzzz/sp…
權限認證
- 認證 (Authentication) 和受權 (Authorization)的區別是什麼?
- 什麼是Cookie ? Cookie的做用是什麼?如何在服務端使用 Cookie ?
- Cookie 和 Session 有什麼區別?如何使用Session進行身份驗證?
- 若是沒有Cookie的話Session還能用嗎?
- 爲何Cookie 沒法防止CSRF攻擊,而token能夠?
- 什麼是 Token?什麼是 JWT?如何基於Token進行身份驗證?
- 什麼是OAuth 2.0?
- 什麼是SSO(單點登陸)
這部分問題答案整理在了這裏:snailclimb.gitee.io/javaguide/#…設計模式
微服務/分佈式
- 爲何要網關?
- 限流的算法有哪些?
- 爲何要分佈式 id ?分佈式 id 生成策略有哪些?
- 瞭解RPC嗎?有哪些常見的 RPC 框架?
- 若是讓你本身設計 RPC 框架你會如何設計?
- Dubbo 瞭解嗎?Spring Cloud 瞭解嗎?
數據庫
- 非關係型數據庫和關係型數據庫的區別?
- 事務的四大特性
- MySQL 事務隔離級別?默認是什麼級別?
- 樂觀鎖與悲觀鎖的區別
- 數據庫兩種存儲引擎的區別
- 最左前綴匹配原則及它的緣由
- 大表優化的思路
- where和having的區別
- 分庫分表
- explain 命令
索引
- 如何加快數據庫查詢速度
- 彙集索引和非彙集索引的區別
- 何時不應使用索引?
- 索引底層的數據結構?
- B+樹作索引比紅黑樹好在哪裏?
Redis:
- 項目中 redis 是怎麼用的?解決了什麼問題?
- 說一下有緩存狀況下查詢的流程以及有緩存狀況下修改的流程。
- redis有哪些數據結構
- redis內存滿了怎麼辦
- redis內存淘汰算法除了lru還有哪些
- 分佈式緩存可能出現的問題
- 緩存穿透問題
網絡
- 計算機網絡的一些常見狀態碼
- ping 所使用的協議
- TCP的三次握手與四次揮手的內容
- TCP爲何鏈接是三次握手而斷開是四次握手
- TCP與UDP的區別及使用場景
- 一次完整的HTTP請求所經的步驟
- http 如何保存登陸信息(沒太搞懂意思)
- Cookie 和 Session的關係
算法和數據結構
算法
- LRU 算法瞭解嗎?你能實現一個嗎?
- 寫排序算法(快排、堆排)
數據結構
- 布隆過濾器瞭解嗎?
設計題
- 假若有10億個數,只有一個重複,內存只能放下5億個數,怎麼找到這個重複的數字?
- 如何設計一個秒殺系統(服務端、數據庫、分佈式)?分佈式系統的設計?
- 有一個服務器專門接收大量請求,怎麼設計?
- 若是讓你本身設計 RPC 框架你會如何設計?
- 怎麼快速出現一個stackoverflow錯誤?
其餘問題
- 自我介紹。
- 說說你的項目中的亮點有哪些。
- 畫一下你的項目的架構圖。
- Restful 瞭解嗎?簡單說一下本身對它的認識,若是我要返回一個 boolean 類型的數據怎麼辦?
經驗總結
- 多面試,不要懼怕失敗,多總結經驗。
- 儘早準備,不管是找工做前、面試前仍是面試後。
- 熟悉本身的簡歷。
- 電話和視頻面試很日常,面試前提早準備一下。
- 堅持!offer 雖然可能會遲到,可是隻要不放棄,就必定不會缺席。
推薦
華爲雲開年採購季!新用戶享1核2G雲服務器79元/年,老用戶推薦獲購買資格!
做者介紹: Github 70k Star 項目 JavaGuide(公衆號同名) 做者。每週都會在公衆號更新一些本身原創乾貨。公衆hao後臺回覆「1」領取Java工程師必備學習資料+面試突擊pdf。