天天看點

GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結

前言

剛剛過去的雙十一,讓“高性能”“高可用”“億級”這3個詞變成了技術熱點詞彙,也讓很多人再次萌發成為「架構師」的想法。先問大家一個問題:你覺得把代碼熟練、完成需求加上點勤奮,就能成為架構師麼?如果你這麼認為,那你注定隻能是“碼農”。從業這麼多年,我見過太多普通程式員做到架構師的例子,但更多的人在聽話地把需求做出來,既不考慮更優解,也不考慮技術原理,重複千篇一律的代碼,以為隻要代碼寫的好就能做「架構師」前段時間,還有哥們兒吐槽說,他們公司的架構師程式設計能力還不如他,傷感自己”懷才不遇“。但其實,架構師看的是綜合實力,程式設計能力固然重要,但遠遠不夠。成為架構師,你需要有紮實的技術基礎、出色的技術能力和優秀的架構設計能力。

GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結

這些面試題你都會了嗎?(精選97道Java核心面試題)

  • 常量池有哪些,資料結構,自己設計一個常量池
  • String為啥設計為final,好處是啥,其中的equals方法如何實作的
  • jdk序列化怎麼實作,有測試過他的性能嗎,serialVersionUID的作用是什麼,用過一些其他序列化方式沒,為什麼需要序列化這個技術
  • hashmap1.7 和 1.8的差別 hashmap怎麼解決hash沖突的 查詢時間複雜度 資料結構
  • hashmap的加載因子為什麼是0.75 好處有沒有去思考過 還有為什麼初始化容量是16 為什麼就不是15 put的死循環
  • LinkedHashMap和hashmap的差別 資料結構 怎麼實作LRU
  • TreeMap的底層排序算法用的什麼 說下快排和堆排
  • ConcurrentHashMap1.7 1.8的差別 size方法可以保證一緻性嗎 知道緩存行嗎,裡面用到的緩存行填充技術是為了解決什麼 put方法和hashmap的put的差別有哪些
  • jdk的@Contented原理說一下
  • jvm和jmm差別說一下 說一下jvm記憶體模型
  • oom了解不,說一下可能發生oom的記憶體區域,堆外記憶體可以發生oom不,會不會被垃圾回收 堆外記憶體一般在什麼地方會用到
  • 回收算法 分别優缺點
  • CMS和G1的差別 分别說一下資料結構
  • CMS和G1分别的使用場景 G1最後一步操作是什麼 為什麼使用者可以自己設定回收記憶體 jdk這樣設計的好處是什麼
  • 說一下項目中調優經驗
  • 說一下MAT的最長引用鍊功能 MAT一般用來分析什麼比較快
  • 一般你怎麼分析一個OOM
  • gc日志裡面可以看到垃圾回收器嗎
  • 看記憶體使用情況用什麼指令
  • 看程式裡面有多少個線程在運作怎麼看
  • 線程的狀态怎麼分析 如果BLOCKING和WAITING狀态的線程很多 會出現什麼情況 說一下BLOCKING和WAITING的差別
  • 如何排查CPU過高的情況
  • 深堆和淺堆
  • jinfo的作用是什麼
  • STW是什麼意思 CMS和G1分别在哪些時期發生的STW 有沒有可能避免STW的情況
  • 并行和并發的差別
  • 說一下sync鎖和lock鎖的差別 他們都是為了保證什麼 除了這兩種方式還可以怎麼優雅的保證程式運作正常
  • sync鎖的底層原理
  • 為什麼輕量級鎖就比重量級鎖要快
  • 程運作到一半,cpu切換到另一個線程,之後再切換回來執行,是怎麼保證在上一次執行點執行的
  • sync鎖的鎖更新和lock鎖的鎖降級的差別
  • lock鎖的鎖降級的優化點是什麼,為什麼不可以鎖更新呢 要是發生了鎖更新會導緻什麼
  • aqs的資料結構 為什麼要用single 而不是singalall
  • state變量的作用是什麼 用在哪些地方
  • cas是不是一定就比使用sync鎖要好 什麼情況下用sync鎖好一點
  • cas怎麼解決的aba問題
  • longadrr原理是什麼 是對什麼的優化
  • vaolitale為什麼不能保證原子性 是怎麼導緻重排序失效的
  • 線程池原理 參數介紹 平時怎麼用的線程池 怎麼優雅的監控線程池的關閉
  • 并發工具類有哪些 平時雜用的 原理 差別
  • disruptor的原理 對于阻塞隊列優化點在哪 平時雜用的
  • arraynlocingqueqe和linkedbloikingqueue的差別
  • hanppen befor語義 多線程下重排序的問題 解決方法
  • forkjoin思想
  • 設計模式 政策的幾種實作 代理uml圖 自己項目裡面怎麼用的 如果一個if else很多的情況下 是不是一定要用政策去改造 這樣改造後的優缺點
  • 單例裡面的靜态内部類的實作
  • 建造者和工廠的差別
  • 繼承和内包含的差別
  • spring裡面用到設計模式
  • 說下spring你看過的源碼流程
  • aop的的通知方法内部執行流程
  • 一個事務中包含多個子事務 怎麼解決
  • springboot的spi機制
  • springboot的内嵌tomcat實作原理
  • springboot的自動裝配原理
  • mysql的索引原理 有哪些索引 為什麼盡量建複合索引 最左側索引原理 為什麼違反就會導緻索引失效
  • 索引的資料結構 B+ B樹的差別 為啥B+樹更快
  • hash索引的場景 是不是都用B+樹
  • 如果是一個查詢操作很慢你從整體架構到細節怎麼排查
  • redis的主從 哨兵 叢集分别解決什麼問題
  • 主從同步原理 怎麼實作的
  • redis可以做哪些事情
  • redis的gossip協定
  • redis的hash算法 一緻性hash算法原理
  • 一緻性hash算法可以解決負載均衡問題麼
  • linux的io模型 indot是什麼
  • bio的原理
  • netty項目中的使用 netty中的管道是什麼 每條消息的傳遞原理
  • netty的bytebuf 雙指針是什麼 零拷貝
  • netty裡面怎麼解決黏包半包的 tcp滑動視窗是什麼 nagle算法 netty
  • 自己實作一個通信協定 盡可能想到完善
  • rpc和http的差別 自己實作一個rpc
  • doss攻擊是什麼 是怎麼鑽的漏洞
  • 幾種消息中間件的差別 怎麼選型 平時項目中用了哪些
  • kafka怎麼保證消息不丢失 消息不重複消費 消息有序 消息堆積怎麼解決 消息持久化怎麼實作的 消息淘汰政策
  • kafka的lsu是什麼 保證有序和性能怎麼權衡
  • 如果是5個消費者 3個分區 5個消費者都能消費到嗎
  • kafka分區在均衡是什麼意思 如果我想設定偏移量 怎麼設定
  • kafka的副本之間的同步機制
  • 微服務和分布式差別 dubbo用過沒有 dubbo的spi dubbo的熔斷功能 dubbo支援的一些協定
  • dubbo的整個執行原理 從提供方到消費方的過程
  • springcloud和dubbo的差別 springcloud在項目中怎麼用的
  • hystrics原理服務隔離是怎麼做的
  • feing的原理
  • 網關統一異常處理是怎麼做的 一般你們怎麼做的權限 如果是通過網關內建security 前端不加Autchcation 會不會進入網關授權過濾器
  • 畫一下你們的架構圖資料流,你們系統的伸縮性展現在哪裡
  • 一個秒殺場景怎麼設計 包括前後端
  • 現在後端日志報了一個事務死鎖的bug怎麼排查
  • nestat 之後發現有很多wating的程序考慮是什麼情況引起的
  • 一個websockt推送的統計資料,程式運作一段時間突然資料不更新了,但是連接配接還存在,怎麼排查,沒有任何異常日志
  • 給一個數組找出三個數相加等于數組另一個數的這四個數
  • 樹的周遊樹圖的差別 dfs bfs
  • es的資料結構 反向索引的原理 es出現中文檢索精确度不高的問題
  • es的分詞和關鍵字的差別
  • 分布式鎖 分布式事務 cap zab base pacox 2pc 3pc tcc
  • seata和lcn的差別内部實作原理
  • kill調一個程序,怎麼保證程式裡面的線程優雅結束
GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結
GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結

總結

其他的内容都可以按照路線圖裡面整理出來的知識點逐一去熟悉,學習,消化,不建議你去看書學習,最好是多看一些視訊,把不懂地方反複看,學習了一節視訊内容第二天一定要去複習,并總結成思維導圖,形成樹狀知識網絡結構,友善日後複習。

這裡還有一份很不錯的《Java基礎核心總結筆記》,特意跟大家分享出來,需要的話點選這裡免費擷取

目錄:

GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結

部分内容截圖:

GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結
GitHub标星過萬!小米java面試幾輪這些面試題你都會了嗎?(精選97道Java核心面試題)總結

8mjnug0S-1622779317450)]

部分内容截圖:

[外鍊圖檔轉存中…(img-0tVIeB3F-1622779317452)]

[外鍊圖檔轉存中…(img-Q3KIxv5R-1622779317453)]

繼續閱讀