我自己前前後後加起來總共應該參加了不下四五十次的面試,另外參考網上的一些面試題,整理了這個面試題庫,希望可以幫助到大家。
篇幅有限,我在上千道面試題中從各技術方向選出15道,分享給大家
可以關注公衆號:【Java專欄】,發送" 面試題 " 獲取完整的面試題(整理成了PDF,並且帶目錄)
或者 ☺️☺️點擊這裏,獲取面試手冊及答案😌😌
Java基礎
1. 爲什麼要有包裝類型?
2. 內部類的分類有哪些
3. 在Java中定義一個不做事且沒有參數的構造方法的作用
4. 在調用子類構造方法之前會先調用父類沒有參數的構造方法,其目的是?
5. final有哪些用法?
6. 什麼Java註釋
7. Java中的抽象類和接口的區別?
8. Java程序是如何執行的
9. 什麼是內部類?
10. Java 中是否可以重寫一個 private 或者 static 方法?
11. Integer a= 127 與 Integer b = 127相等嗎
12. static的獨特之處
13. static和final區別
14. a=a+b與a+=b有什麼區別嗎?
15. 一個類的構造方法的作用是什麼?若一個類沒有聲明構造方法,改程序能正確執行嗎?爲什麼?
字符串
16. 什麼是字符串池?
17. 如何將String轉換爲char,反過來呢?
18. 如何將String轉換爲byte array,反過來呢?
19. 爲什麼要引入SpringBuffer、StringBuilder兩種字符串處理類?
20. 創建String對象的不同方式有哪些?
21. String str="i"與 String str=new String("i")一樣嗎?
22. 如何分割一個String?
23. String s = new String("xyz");創建了幾個StringObject?是否可以繼承String類?
24. String是不可變的有什麼好處?
25. 如何讓一個字符串變成小寫或大寫形式?
26. 什麼是String,它是什麼數據類型?
27. Java 中操作字符串都有哪些類?它們之間有什麼區別?
28. 下面這條語句一共創建了多少個對象:String s="a"+"b"+"c"+"d"
29. String 類的常用方法都有那些?
30. 如何比較兩個字符串?
容器
31. HashMap自動擴容
32. hashCode()和equals()方法有何重要性?
33. Array和ArrayList有何區別?什麼時候更適合用Array?
34. fail-fast與fail-safe有什麼區別?
35. 哪些集合類提供對元素的隨機訪問?
36. ArrayList,Vector,LinkedList的存儲性能和特性
37. 簡述Java中的集合
38. 我們如何對一組對象進行排序?
39. Comparable和Comparator接口有何區別?
40. HashMap在JDK1.7和JDK1.8中有哪些不同?
41. 大寫的O是什麼?舉幾個例子?
42. ConcurrenHashMap 原理?1.8 中爲什麼要用紅黑樹?
43. 談談線程池阻塞隊列吧~
44. HashMap和HashTable有何不同?
45. 隊列和棧是什麼,列出它們的區別?
多線程併發
46. Java中interrupted 和isInterruptedd方法的區別?
47. 什麼是線程調度器(Thread Scheduler)和時間分片(Time Slicing)?
48. 說一下 atomic 的原理?
49. 自旋鎖的優缺點?
50. 如何在兩個線程之間共享數據
51. 什麼是ThreadLocal變量?
52. 什麼是線程池? 爲什麼要使用它?
53. 如何創建守護線程?以及在什麼場合來使用它?
54. Java中interrupted 和 isInterrupted方法的區別?
55. 常用的線程池模式以及不同線程池的使用場景?
56. 線程池都有哪些狀態?
57. 什麼是阻塞(Blocking)和非阻塞(Non-Blocking)?
58. 在Java中Executor、ExecutorService、Executors的區別?
59. 現在有 T1、T2、T3 三個線程,你怎樣保證 T2 在 T1 執行完後執行,T3 在 T2 執行完後執 行?
60. 線程中斷是否能直接調用stop,爲什麼?
異常
61. Excption與Error包結構
62. Java異常簡介
63. 運行時異常與一般異常有何異同?
64. Throw 和 throws 的區別
65. 簡單說說Java中的異常處理機制的簡單原理和應用。
66. Java異常的分類
67. try {}裏有一個return語句,那麼緊跟在這個try後的finally{}裏的code會不會被執行,什麼時候被執行,在return前還是後?
68. 什麼是受檢異常
69. 闡述 final、finally、finalize 的區別
70. 列出一些你常見的運行時異常?
71. Error 和 Exception 有什麼區別?
泛型
72. List<? extends T>和List <? super T>之間有什麼區別 ?
73. 什麼是泛型中的限定通配符和非限定通配符 ?
74. Java的泛型是如何工作的 ? 什麼是類型擦除 ?
75. 什麼是泛型
76. 如何編寫一個泛型方法,讓它能接受泛型參數並返回泛型類型?
77. 你可以把List傳遞給一個接受List