我分享文章的時候,有個讀者回復說他去年就關注了我的微信公眾號,打算看完我的所有文章,然后去面試,結果我后來很長時間不更新了。。。所以為了彌補一直等我的娃兒們,給大家的金三銀四准備了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。