大家可以通過這些面試題查漏補缺。
ps:鏈接點進去就是答案
一、Java基礎 44 道
5. Java 中是否可以重寫一個 private 或者 static 方法?
7. 在 Java 中定義一個不做事且沒有參數的構造方法有什么作用?
11. 12、short s1 = 1;s1 = s1 + 1;有什么錯?那么 short s1 = 1; s1 += 1;呢?有沒有錯誤?
14. switch 語句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?
15. 16、final、finally、finalize 的區別
17. 兩個對象的 hashCode() 相同,則 equals() 也一定為 true 嗎?
18. 為什么重寫 equals() 就一定要重寫 hashCode() 方法?
21. Java 中的 Math.round(-1.5) 等於多少?
24. 什么是 Java 的序列化,如何實現 Java 的序列化?
26. Java 的泛型是如何工作的 ? 什么是類型擦除 ?
37. String、StringBuilder、StringBuffer 的區別?
39. String str = "i" 與 String str = new String("i") 一樣嗎?
41. final 修飾 StringBuffer 后還可以 append 嗎?
42. Java 中的 IO 流的分類?說出幾個你熟悉的實現類?
答案看這里:Java面試題必知必會(附答案)
二、Java異常 9 道
3. try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?
4. try-catch-finally 中那個部分可以省略?
三、Java集合 24 道
2. ArrayList 和 LinkedList 的區別?
3. ArrayList 實現 RandomAccess 接口有何作用?為何 LinkedList 卻沒實現這個接口?
5. Array 和 ArrayList 有何區別?什么時候更適合用 Array?
6. HashMap 的實現原理/底層數據結構?JDK1.7 和 JDK1.8
10. HashMap 的 size 為什么必須是 2 的整數次方?
12. HashMap 的 get 方法能否判斷某個元素是否在 map 中?
13. HashMap 與 HashTable 的區別是什么?
14. HashMap 與 ConcurrentHashMap 的區別是什么?
15. HashTable 和 ConcurrentHashMap 的區別?
16. ConcurrentHashMap 的實現原理是什么?
21. Iterator 和 ListIterator 有什么區別?
22. Iterator 和 Enumeration 接口的區別?
23. fail-fast 與 fail-safe 有什么區別?
24. Collection 和 Collections 有什么區別?
四、Java並發 42 道
11. Thread.interrupt() 方法的工作原理是什么?
14. 說一說自己對於 synchronized 關鍵字的了解?
16. 說說 JDK1.6 之后的 synchronized 關鍵字底層做了哪些優化,可以詳細介紹一下這些優化嗎?
17. 談談 synchronized 和 ReenTrantLock 的區別?
18. synchronized 和 volatile 的區別是什么?
20. 說下對 ReentrantReadWriteLock 的理解?
30. AQS 底層使用了模板方法模式,你能說出幾個需要重寫的方法嗎?
32. CountDownLatch 和 CyclicBarrier 有什么區別?
37. 執行 execute() 方法和 submit() 方法的區別是什么呢?
40. 談談對 CopyOnWriteArrayList 的理解?
41. 談談對 BlockingQueue 的理解?分別有哪些實現類?
42. 談談對 ConcurrentSkipListMap 的理解?
五、Java JVM 42 道
5. 為什么要把堆和棧區分出來呢?棧中不是也可以存儲數據嗎?
19. 分代收集下的年輕代和老年代應該采用什么樣的垃圾回收算法?
26. 談談你對內存分配的理解?大對象怎么分配?空間分配擔保?
40. 為何 HotSpot 虛擬機要使用解釋器與編譯器並存的架構?
六、SSM框架 37 道
10. Spring 中的單例 Bean 的線程安全問題了解嗎?
16. ApplicationContext 通常的實現有哪些?
22. 如何解決 POST 請求中文亂碼問題,GET 的又如何處理呢?
23. SpringMVC 的控制器是不是單例模式,如果是會有什么問題,怎么解決?
26. SpringMVC 和 Struts2 的區別有哪些?
29. MyBatis 與 Hibernate 有哪些不同?
30. MyBatis 中 #{} 和 ${}的區別是什么?
31. MyBatis 是如何進行分頁的?分頁插件的原理是什么?
34. MyBatis 是否支持延遲加載?如果支持,它的實現原理是什么?
37. MyBatis 動態 SQL 是做什么的?都有哪些動態 SQL?能簡述一下動態 SQL的執行原理不?
七、MySQL 31 道
5. varchar(10) 和 varchar(20) 的區別?
9. 為什么 InnoDB 存儲引擎選用 B+ 樹而不是 B 樹呢?
15. 怎么知道創建的索引有沒有被使用到?或者說怎么才可以知道這條語句運行很慢的原因?
31. MySQL 數據庫 CPU 飆升到 500% 的話他怎么處理?
八、Redis 12 道
九、計算機網絡 45 道
8. 在交互過程中如果數據傳送完了,還不想斷開連接怎么辦,怎么維持?
22. TCP 和 UDP 分別對應的常見應用層協議有哪些?
23. 為什么 TIME-WAIT 狀態必須等待 2MSL 的時間呢?
39. 談下你對 HTTP 長連接和短連接的理解?分別應用於哪些場景?
十、操作系統 32 道
22. 一個程序從開始運行到結束的完整過程,你能說出來多少?
十一、消息隊列與分布式 26 道
4. 如何保證消息不被重復消費?或者說,如何保證消息消費的冪等性?
5. 如何保證消息的可靠性傳輸?或者說,如何處理消息丟失的問題?
12. Kafka 可以脫離 zookeeper 單獨使用嗎?為什么?
22. 集群中有 3 台服務器,其中一個節點宕機,這個時候 Zookeeper 還可以使用嗎?