Java
Java 基礎這部分一些簡單的問題就直接沒有放上來。
基礎:
- Java 反射?反射有什麼缺點?你是怎麼理解反射的(為什麼框架需要反射)?
- 談談對 Java 註解的理解,解決了什麼問題?
- 內部類瞭解嗎?匿名內部類瞭解嗎?
- BIO和NIO區別,4核cpu,100個http連接,用BIO和NIO分別需要多少個線程
- HashMap的負載因子。
jvm:
- jvm 內存結構
- jvm 調優參數
- 什麼是類加載?
- 何時類加載?
- java的類加載流程?
- 知道哪些類加載器。類加載器之間的關係?
- 類加載器之間的關係?
- 類加載器的雙親委派 (結合tomcat說一下雙親委派)
- 為什麼需要雙親委派
- Java內存模型
- 棧中存放什麼數據,堆中呢?
- 大對象放在哪個內存區域
- 堆區如何分類
- 垃圾回收有哪些算法
- GC的全流程
- GC中老年代用什麼回收方法?
多線程:
- Java線程池有哪些參數?阻塞隊列有幾種?拒絕策略有幾種?
- 死鎖
設計模式:
- 閱讀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(單點登錄)
微服務/分佈式
- 為什麼要網關?
- 限流的算法有哪些?
- 為什麼要分佈式 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 雖然可能會遲到,但是隻要不放棄,就一定不會缺席。
答案獲取
這些面試題的答案,我已經整理成為一份Java面試文檔中了,如果你需要這一份面試pdf的話,關注轉發這篇文章之後私信回覆【面試】即可免費獲取到!
每個章節下面都有一個詳細的知識點,有需要可以私信我獲取到這份文檔!
閱讀更多 Java大數據高級架構師 的文章