天天看點

Java 面試題經典 77 問(含答案)!

Java 面試題經典 77 問(含答案)!

金三銀四了,3月底,4月初,找工作換機關的黃金時期。4月初将會有有一大批職場人士流動。。。

作為Java開發碼農的你是不是也在蠢蠢欲動,或者已經搞了幾輪車輪戰了?

我們為大家準備了 77 道經典 Java 面試題,如果你面試不力,基礎還不夠強,那麼你或許會受用!

1、什麼是Java虛拟機?為什麼Java被稱作是“平台無關的程式設計語言”?

2、JDK和JRE的差別是什麼?

3、static關鍵字是什麼意思?Java中是否可以覆寫(override)一個private或者是 static的方法?

4、是否可以在static環境中通路非static變量?

5、Java支援的資料類型有哪些?什麼是自動拆裝箱?

6、Java中的方法覆寫(Overriding)和方法重載(Overloading)是什麼意思?

7、Java中,什麼是構造函數?什麼是構造函數重載?什麼是複制構造函數?

8、Java支援多繼承麼?

9、接口和抽象類的差別是什麼?

10、什麼是值傳遞和引用傳遞?

11、程序和線程的差別是什麼?

12、建立線程有幾種不同的方式?你喜歡哪一種?為什麼?

13、概括的解釋下線程的幾種可用狀态。

14、同步方法和同步代碼塊的差別是什麼?

15、什麼是死鎖(deadlock)?

16、如何確定N個線程可以通路N個資源同時又不導緻死鎖?

17、Java集合類架構的基本接口有哪些?

18、為什麼集合類沒有實作Cloneable和Serializable接口?

19、什麼是疊代器(Iterator)?

20、Iterator和ListIterator的差別是什麼?

21、快速失敗(fail-­fast)和安全失敗(fail-­safe)的差別是什麼?

22、Java中的HashMap的工作原理是什麼?

23、hashCode()和equals()方法的重要性展現在什麼地方?

24.HashMap和Hashtable有什麼差別?

25、數組(Array)和清單(ArrayList)有什麼差別?什麼時候應該使用Array而不是 ArrayList?

26、ArrayList和LinkedList有什麼差別?

27、Comparable和Comparator接口是幹什麼的?列出它們的差別。

28、什麼是Java優先級隊列(Priority Queue)?

29、你了解大O符号(big-­O notation)麼?你能給出不同資料結構的例子麼?

30、如何權衡是使用無序的數組還是有序的數組?

31、Java集合類架構的最佳實踐有哪些?

32、Enumeration接口和Iterator接口的差別有哪些?

33、HashSet和TreeSet有什麼差別?

34、System.gc()和Runtime.gc()會做什麼事情?

35、finalize()方法什麼時候被調用?析構函數(finalization)的目的是什麼?

36、果對象的引用被置為null,垃圾收集器是否會立即釋放對象占用的記憶體?

37、Java堆的結構是什麼樣子的?什麼是堆中的永久代(Perm Gen space)?

38、串行(serial)收集器和吞吐量(throughput)收集器的差別是什麼?

39、在Java中,對象什麼時候可以被垃圾回收?

40、JVM的永久代中會發生垃圾回收麼?

41、Java中的兩種異常類型是什麼?他們有什麼差別?

42、Java中Exception和Error有什麼差別?

43、throw和throws有什麼差別?

44、異常處理完成以後,Exception對象會發生什麼變化?

45、finally代碼塊和finalize()方法有什麼差別?

46、什麼是JDBC?

47、解釋下驅動(Driver)在JDBC中的角色。

48、Class.forName()方法有什麼作用?

49、PreparedStatement比Statement有什麼優勢?

50、什麼時候使用CallableStatement?用來準備CallableStatement的方法是什麼?

51、資料庫連接配接池是什麼意思?

52、什麼是RMI?

53、什麼是分布式垃圾回收(DGC)?它是如何工作的?

54、解釋下Serialization和Deserialization。

55、什麼是Servlet?

56、說一下Servlet的體系結構。

57、GenericServlet和HttpServlet有什麼差別?

58、解釋下Servlet的生命周期。

59、doGet()方法和doPost()方法有什麼差別?

60、什麼是服務端包含(Server Side Include)?

61、什麼是Servlet鍊(Servlet Chaining)?

62、如何知道是哪一個用戶端的機器正在請求你的Servlet?

63、HTTP響應的結構是怎麼樣的?

64、什麼是cookie?session和cookie有什麼差別?

65、浏覽器和Servlet通信使用的是什麼協定?

66、什麼是HTTP隧道?

67、sendRedirect()和forward()方法有什麼差別?

68、什麼是URL編碼和URL解碼?

69、JSP請求是如何被處理的?

70、什麼是JSP指令(Directive)?JSP中有哪些不同類型的指令?

71、什麼是JSP動作(JSP action)?

72、隐含對象是什麼意思?有哪些隐含對象?

73、面向對象軟體開發的優點有哪些?

74、封裝的定義和好處有哪些?

75、多态的定義?

76、繼承的定義?

77、抽象的定義?抽象和封裝的不同點?