100道Java高頻面試題(阿里面試官整理)
阿新 • • 發佈:2021-03-02
> 我分享文章的時候,有個讀者回復說他去年就關注了我的微信公眾號,打算看完我的所有文章,然後去面試,結果我後來很長時間不更新了。。。所以為了彌補一直等我的娃兒們,給大家的金三銀四準備了100道花時間準備的高頻Java面試題,大家不要太感動,記得點贊評論就行。
這次只放出九十道,剩下10道準備找認識的幾位面試官去要,希望不會被拒絕。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20210225005926227.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poZW5nd2FuZ3p3,size_16,color_FFFFFF,t_70#pic_center)
這些題我認為認真思考還是很有價值的,答案整理中,全部整理好,我會做出PDF,整理好後大家公眾號後臺回覆“Java面試題”領取。
### 90道高頻面試題
1. 自我介紹一下
2. 專案中用到的技術棧介紹一下
3. 做的自認為比較滿意的點講一講?
4. 如果這個方案讓你重新設計,你怎麼做?
5. Java集合類都有哪些?
6. ArrayList 和 LinkedList 區別?
7. HashMap 實現資料結構和擴容過程?
8. ArrayList 和 LinkedList 區別? 你平常怎麼選擇?
9. 異常類都有哪些?Exception 和 Error什麼區別?
10. Synchronized 原理,鎖膨脹過程 ?
11. Synchronized 和 reentrantlock 區別?
12. 執行緒池原理是怎樣的?
13. 分散式事務一致性怎麼實現?
14. 訊息亂序遇到過嗎? 怎麼解決的?
15. ThreadLocal 用過嗎?實現機制?
16. wait、sleep區別?
17. 反射用過嗎?什麼原理?
18. 動態代理了解嗎? cglib什麼區別
19. 單例模式瞭解嗎? 實現一個執行緒安全的單例模式?
20. 無界佇列和有界佇列?
21. AQS 知道嗎?
22. volatile瞭解嗎?
23. 實現一個生產者消費者例子
24. Java記憶體模型清楚嗎?
25. 遇到過線上效能問題嗎? 怎麼排查的?
26. 網路問題遇到過嗎?TIME_WAIT和CLOSE_WAIT的區別
27. 三次握手講一講
28. CountDownLatch、Seamphone、CyclicBarrier 都瞭解嗎?
29. private、protected、public、關鍵字你平常怎麼用的?
30. Java是值傳遞還是引用傳遞,寫一段物件拷貝的程式碼
31. 記憶體回收機制瞭解嗎?
32. 新生代和老生代區別?
33. 垃圾回收器有哪幾種? 你們生產環境用的哪種或哪幾種?
34. Java執行緒和作業系統執行緒什麼關係?
35. 執行緒有幾種狀態,執行緒生命週期講講
36. MySQL 索引使用什麼資料結構?為什麼用 B+做索引?
37. 什麼是最左匹配原則?
38. 在建表的時候如何設計所以的?有沒有做過索引優化 ?
39. 分庫分表做了嗎? 怎麼實現的?
40. MySQL 主從同步怎麼做的?binlog清楚嗎?
41. 有沒有做分庫分表?怎麼設計的?
42. 用userId做的分庫分表,現在需要用電話號碼查詢怎麼辦?
43. 你們用的什麼日誌框架,log4j 和logback ?和slf4j什麼區別?
44. redis 的String 是怎麼實現的? 為什麼不直接用c的?
45. redis 是單執行緒的嗎? 為什麼這麼快?
46. redis 中有哪幾種資料結構?分別代表什麼
47. 類載入機制瞭解嗎?
48. 什麼是雙親委派模式
49. concurrenthashmap 什麼原理?
50. Spring AOP與IOC的實現原理
51. Spring的BeanFactory和FactoryBean的區別
52. 講講Spring中一個Bean的載入流程?
53. Spring的事務的隔離級別?
54. Autowired註解的原理?
55. 用的什麼rpc框架
56. 冪等了解嗎? 你們系統怎麼做冪等的
57. 限流、熔斷有了解嗎?如何實現的
58. 訊息中介軟體如何解決訊息丟失、訊息亂序問題?
59. 分散式事務保證一致性?
60. 分散式鎖的實現?
61. 實現一個分散式自增id?
62. 海量url怎麼去重?
63. Redis有沒有做持久化,怎麼做的?
64. 工作中用到了那些設計模式?
65. 什麼是一致性hash?
66. 專案中用過什麼設計模式?清楚模板方法、策略模式、責任鏈模式嗎?
67. MySQL InnoDB儲存的檔案結構
68. 講講樂觀鎖和悲觀鎖
69. cpu 100% 遇到過嗎? 怎麼解決的
70. 更新資料機制? 先更新快取還是DB?
71. 快取穿透、雪崩有了解嗎
72. 設計一個搶紅包的程式?
73. Dp揹包問題?
74. Minor GC 與 Full GC 分別在什麼時候發生?
75. Java 類載入過程?
76. 談談對Spring IOC和DI的理解?
77. 你常用的git 命令?
78. 執行緒呼叫start 和 run 什麼區別? 會有什麼效果
79. 中序遍歷二叉樹
80. 之前專案遇到過什麼挑戰?
81. 專案中你認為做的最有價值的功能?
82. 父類和子類有同一個屬性,例項化子類時是否會包含父類的屬性?
83. 有沒有出現過Full Gc等問題? 你是怎麼排查的?
84. 一般是怎麼判斷SQL 索引設定是否合理的?
85. 什麼是不可變物件?String 類為什麼設計成不可變的?
86. 抽象類和介面什麼區別?你在做介面和類設計時如何選擇?
87. HashMap的key 型別有什麼要求?
88. 寫一個深度優先演算法?
89. 寫快速排序 & 氣泡排序?
90. 什麼是使用者空間和核心空間?有什麼區別?
大家先思考思考,答案更新完畢在公眾號後臺回覆”Java面試題“ 暗號領取。
希望大家金三銀四找到自己滿意的工作,不看機會的同學升職加薪,必拿3.75。