我分享文章的時候,有個讀者回復說他去年就關注了我的微信公眾號,打算看完我的所有文章,然後去面試,結果我後來很長時間不更新了。。。所以為了彌補一直等我的娃兒們,給大家的金三銀四準備了100道花時間準備的高頻Java面試題,大家不要太感動,記得點贊評論就行。
這次只放出九十道,剩下10道準備找認識的幾位面試官去要,希望不會被拒絕。
這些題我認為認真思考還是很有價值的,答案整理中,全部整理好,我會做出PDF,整理好後大家公眾號後臺回覆“Java面試題”領取。
90道高頻面試題
- 自我介紹一下
- 專案中用到的技術棧介紹一下
- 做的自認為比較滿意的點講一講?
- 如果這個方案讓你重新設計,你怎麼做?
- Java集合類都有哪些?
- ArrayList 和 LinkedList 區別?
- HashMap 實現資料結構和擴容過程?
- ArrayList 和 LinkedList 區別? 你平常怎麼選擇?
- 異常類都有哪些?Exception 和 Error什麼區別?
- Synchronized 原理,鎖膨脹過程 ?
- Synchronized 和 reentrantlock 區別?
- 執行緒池原理是怎樣的?
- 分散式事務一致性怎麼實現?
- 訊息亂序遇到過嗎? 怎麼解決的?
- ThreadLocal 用過嗎?實現機制?
- wait、sleep區別?
- 反射用過嗎?什麼原理?
- 動態代理了解嗎? cglib什麼區別
- 單例模式瞭解嗎? 實現一個執行緒安全的單例模式?
- 無界佇列和有界佇列?
- AQS 知道嗎?
- volatile瞭解嗎?
- 實現一個生產者消費者例子
- Java記憶體模型清楚嗎?
- 遇到過線上效能問題嗎? 怎麼排查的?
- 網路問題遇到過嗎?TIME_WAIT和CLOSE_WAIT的區別
- 三次握手講一講
- CountDownLatch、Seamphone、CyclicBarrier 都瞭解嗎?
- private、protected、public、關鍵字你平常怎麼用的?
- Java是值傳遞還是引用傳遞,寫一段物件拷貝的程式碼
- 記憶體回收機制瞭解嗎?
- 新生代和老生代區別?
- 垃圾回收器有哪幾種? 你們生產環境用的哪種或哪幾種?
- Java執行緒和作業系統執行緒什麼關係?
- 執行緒有幾種狀態,執行緒生命週期講講
- MySQL 索引使用什麼資料結構?為什麼用 B+做索引?
- 什麼是最左匹配原則?
- 在建表的時候如何設計所以的?有沒有做過索引優化 ?
- 分庫分表做了嗎? 怎麼實現的?
- MySQL 主從同步怎麼做的?binlog清楚嗎?
- 有沒有做分庫分表?怎麼設計的?
- 用userId做的分庫分表,現在需要用電話號碼查詢怎麼辦?
- 你們用的什麼日誌框架,log4j 和logback ?和slf4j什麼區別?
- redis 的String 是怎麼實現的? 為什麼不直接用c的?
- redis 是單執行緒的嗎? 為什麼這麼快?
- redis 中有哪幾種資料結構?分別代表什麼
- 類載入機制瞭解嗎?
- 什麼是雙親委派模式
- concurrenthashmap 什麼原理?
- Spring AOP與IOC的實現原理
- Spring的BeanFactory和FactoryBean的區別
- 講講Spring中一個Bean的載入流程?
- Spring的事務的隔離級別?
- Autowired註解的原理?
- 用的什麼rpc框架
- 冪等了解嗎? 你們系統怎麼做冪等的
- 限流、熔斷有了解嗎?如何實現的
- 訊息中介軟體如何解決訊息丟失、訊息亂序問題?
- 分散式事務保證一致性?
- 分散式鎖的實現?
- 實現一個分散式自增id?
- 海量url怎麼去重?
- Redis有沒有做持久化,怎麼做的?
- 工作中用到了那些設計模式?
- 什麼是一致性hash?
- 專案中用過什麼設計模式?清楚模板方法、策略模式、責任鏈模式嗎?
- MySQL InnoDB儲存的檔案結構
- 講講樂觀鎖和悲觀鎖
- cpu 100% 遇到過嗎? 怎麼解決的
- 更新資料機制? 先更新快取還是DB?
- 快取穿透、雪崩有了解嗎
- 設計一個搶紅包的程式?
- Dp揹包問題?
- Minor GC 與 Full GC 分別在什麼時候發生?
- Java 類載入過程?
- 談談對Spring IOC和DI的理解?
- 你常用的git 命令?
- 執行緒呼叫start 和 run 什麼區別? 會有什麼效果
- 中序遍歷二叉樹
- 之前專案遇到過什麼挑戰?
- 專案中你認為做的最有價值的功能?
- 父類和子類有同一個屬性,例項化子類時是否會包含父類的屬性?
- 有沒有出現過Full Gc等問題? 你是怎麼排查的?
- 一般是怎麼判斷SQL 索引設定是否合理的?
- 什麼是不可變物件?String 類為什麼設計成不可變的?
- 抽象類和介面什麼區別?你在做介面和類設計時如何選擇?
- HashMap的key 型別有什麼要求?
- 寫一個深度優先演算法?
- 寫快速排序 & 氣泡排序?
- 什麼是使用者空間和核心空間?有什麼區別?
大家先思考思考,答案更新完畢在公眾號後臺回覆”Java面試題“ 暗號領取。
希望大家金三銀四找到自己滿意的工作,不看機會的同學升職加薪,必拿3.75。