1. 程式人生 > >Java面試題大彙總

Java面試題大彙總

前言        

        關於贏在面試的Java題系列基本收集整理完成了,所有題目都是經過精心挑選的,很基礎又考驗求職者的基本功,應該說被面試到的機率很大。這裡整理挑選出來供大家面試前拿來看一看,所有題目整理自網路,有一些錯誤和筆誤,感謝讀者的熱心糾錯,在宣告中已經改正過來。

        整理這些面試題源於在微信群和幾個剛入職的小夥伴們的一次討論,很多小夥伴談了自己的面試經歷和體會,很多人最初鄙視刷題黨,覺得開發技能最重要,但在短暫的面試過程中很挫敗。轉而去看面試題,但是網上面試題太多但又不全,查詢很不方便,多是看過的又看,看十道才能看到面生的題目,極大的浪費了求職期間的寶貴時間。

        最後大家一拍即合,準備各自把面試筆試以及自己看過好的題目收集起來,整理出來讓後來的小夥伴們少踩些坑,所以有了這些題目。

 

目錄

 

贏在面試之Java基礎篇(1)

1、一個".java"原始檔中是否可以包括多個類(不是內部類)?有什麼限制?

2、Java有沒有goto?

3、說說&和&&的區別。

4、在JAVA中如何跳出當前的多重巢狀迴圈?

5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上?

6、short s1= 1; s1 = (s1+1是int型別,而等號左邊的是short型別,所以需要強轉)1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?(沒有錯)

7、char型變數中能不能存貯一箇中文漢字?為什麼?

8、用最有效率的方法算出2乘以8等於幾?

9、使用final關鍵字修飾一個變數時,是引用不能變,還是引用的物件不能變?

10,靜態變數和例項變數的區別?

 

贏在面試之Java基礎篇(2)

11、是否可以從一個static方法內部發出對非static方法的呼叫?

12、Integer與int的區別

13、Math.round(11.5)等於多少?Math.round(-11.5)等於多少?

14、Overload和Override的區別?Overloaded的方法是否可以改變返回值的型別?

15、介面是否可繼承介面?抽象類是否可實現(implements)介面?抽象類是否可繼承具體類(concreteclass)?抽象類中是否可以有靜態的main方法?

16、Java中實現多型的機制是什麼?

17、abstractclass和interface語法上有什麼區別?

18、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?

19、內部類可以引用它的包含類的成員嗎?有沒有什麼限制?

20、String s = "Hello";s = s + "world!";這兩行程式碼執行後,原始的String物件中的內容到底變了沒有?

 

贏在面試之Java集合框架篇(3)

21、ArrayList和Vector的區別

22、HashMap和Hashtable的區別

23、List和 Map區別?

24、List,Set, Map是否繼承自Collection介面?

25、List、Map、Set三個介面,存取元素時,各有什麼特點?

26、說出ArrayList,Vector,LinkedList的儲存效能和特性

27、去掉一個Vector集合中重複的元素

28、Collection和Collections的區別。

29、Set裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用==還是equals()?它們有何區別?
30、你所知道的集合類都有哪些?主要方法?

 

贏在面試之Java基礎篇(4)

31、String s = new String("xyz");建立了幾個StringObject?是否可以繼承String類?

32、String和StringBuffer的區別

33、下面這條語句一共建立了多少個物件:String s="a"+"b"+"c"+"d";

34、try {}裡有一個return語句,那麼緊跟在這個try後的finally{}裡的code會不會被執行,什麼時候被執行,在return前還是後?

35、final, finally, finalize的區別。 

36、執行時異常與一般異常有何異同?

37、error和exception有什麼區別?

38、簡單說說Java中的異常處理機制的簡單原理和應用。

39、Java 中堆和棧有什麼區別?

40、能將 int 強制轉換為 byte 型別的變數嗎?如果該值大於 byte 型別的範圍,將會出現什麼現象?

 

 

贏在面試之Java基礎篇(5)

41、a.hashCode() 有什麼用?與 a.equals(b) 有什麼關係?

42、位元組流與字元流的區別

43、什麼是java序列化,如何實現java序列化?或者請解釋Serializable介面的作用。

44、描述一下JVM載入class檔案的原理機制?

45、heap和stack有什麼區別。

46、GC是什麼?為什麼要有GC?

47、垃圾回收的優點和原理。並考慮2種回收機制。

48、垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器進行垃圾回收?

49、Java 中,throw 和 throws 有什麼區別

50,java中會存在記憶體洩漏嗎,請簡單描述。

 

贏在面試之JavaWeb篇(6)

51、說一說Servlet的生命週期?

52、Servlet API中forward()與redirect()的區別?

53、request.getAttribute()和 request.getParameter()有何區別?

54,jsp靜態包含和動態包含的區別

55,MVC的各個部分都有那些技術來實現?如何實現?

56,jsp有哪些內建物件?作用分別是什麼?

57,Http中,get和post方法的區別

58,什麼是cookie?Session和cookie有什麼區別?

59,jsp和servlet的區別、共同點、各自應用的範圍?

60,tomcat容器是如何建立servlet類例項?用到了什麼原理?

 

 

贏在面試之JavaWeb篇(7)

61,JDBC訪問資料庫的基本步驟是什麼?

62,說說preparedStatement和Statement的區別

63,說說事務的概念,在JDBC程式設計中處理事務的步驟。

64,資料庫連線池的原理。為什麼要使用連線池。

65,JDBC的髒讀是什麼?哪種資料庫隔離級別能防止髒讀?

66,什麼是幻讀,哪種隔離級別可以防止幻讀?

67,JDBC的DriverManager是用來做什麼的?

68,execute,executeQuery,executeUpdate的區別是什麼?

69,SQL查詢出來的結果分頁展示一般怎麼做?

70,JDBC的ResultSet是什麼? 

 

贏在面試之Java框架篇(8)

71,談談你對Struts的理解。

72、談談你對Hibernate的理解。

73,談談你對Spring的理解。

74,談談Struts的優缺點

75,iBatis與Hibernate有什麼不同?

76,在hibernate進行多表查詢每個表中各取幾個欄位,也就是說查詢出來的結果集沒有一個實體類與之對應如何解決?

77,介紹一下Hibernate的二級快取

78,JDO是什麼?

79,Hibernate的一對多和多對一雙向關聯的區別??

80,Hibernate是如何延遲載入? 

 

贏在面試之Java框架篇(9)

81,使用Spring框架的好處是什麼?

82. ApplicationContext通常的實現是什麼?

83,什麼是Spring的依賴注入?有哪些方法進行依賴注入

84,什麼是Spring beans?

85,解釋Spring支援的幾種bean的作用域。

86,解釋Spring框架中bean的生命週期。

 

87,在 Spring中如何注入一個java集合?

 

88,解釋不同方式的自動裝配 。

89,Spring框架的事務管理有哪些優點?

 

90.什麼是基於Java的Spring註解配置? 給一些註解的例子?

 

贏在面試之Java持久層(10)

91,什麼是ORM?

92,Hibernate中SessionFactory是執行緒安全的嗎?Session是執行緒安全的嗎(兩個執行緒能夠共享同一個Session嗎)?

93,Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分別是做什麼的?有什麼區別?

94,闡述Session載入實體物件的過程。

95,MyBatis中使用#和$書寫佔位符有什麼區別?

96,解釋一下MyBatis中名稱空間(namespace)的作用。

97、MyBatis中的動態SQL是什麼意思?

98,JDBC程式設計有哪些不足之處,MyBatis是如何解決這些問題的?

99,MyBatis與Hibernate有哪些不同?

100,簡單的說一下MyBatis的一級快取和二級快取?

 

 

贏在面試之資料庫篇(11)

101,查詢課程1的成績比課程2的成績高的所有學生的學號
102,查詢平均成績大於60分的同學的學號和平均成績
103,查詢所有同學的學號、姓名、選課數、總成績
104,查詢姓“張”的老師的個數

105,查詢沒學過“張三”老師課的同學的學號、姓名
106,查詢同時學過課程1和課程2的同學的學號、姓名

107,查詢學過“李四”老師所教所有課程的所有同學的學號、姓名

108,查詢課程編號1的成績比課程編號2的成績高的所有同學的學號、姓名
109,查詢所有課程成績小於60分的同學的學號、姓名

110,查詢至少有一門課程與學號為1的同學所學課程相同的同學的學號和姓名

 

贏在面試之資料庫篇(12)

111、把“sc”表中“王五”所教課的成績都更改為此課程的平均成績

112、查詢和編號為2的同學學習的課程完全相同的其他同學學號和姓名

113、刪除學習“王五”老師課的sc表記錄
114、向sc表中插入一些記錄,這些記錄要求符合以下條件:
將沒有課程3成績同學的該成績補齊, 其成績取所有學生的課程2的平均成績

115、按平平均分從高到低顯示所有學生的如下統計報表:
-- 學號,企業管理,馬克思,UML,資料庫,物理,課程數,平均分

116、查詢各科成績最高分和最低分:以如下形式顯示:課程號,最高分,最低分

117、按各科平均成績從低到高和及格率的百分數從高到低順序

118、查詢如下課程平均成績和及格率的百分數(用"1行"顯示): 
企業管理(001),馬克思(002),UML (003),資料庫(004) 
119、查詢不同老師所教不同課程平均分, 從高到低顯示

120、查詢如下課程成績均在第3名到第6名之間的學生的成績:
-- [學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績

 

 

 

贏在面試之Java多執行緒(13)

121,什麼是執行緒?

122,執行緒和程序有什麼區別?

123,如何在Java中實現執行緒?

124,Java 關鍵字volatile 與 synchronized 作用與區別?

125,有哪些不同的執行緒生命週期?

126,你對執行緒優先順序的理解是什麼?

127,什麼是死鎖(Deadlock)?如何分析和避免死鎖?

128,什麼是執行緒安全?Vector是一個執行緒安全類嗎? 

129,Java中如何停止一個執行緒?

130,什麼是ThreadLocal?

131,Sleep()、suspend()和wait()之間有什麼區別?

132,什麼是執行緒餓死,什麼是活鎖?

133,什麼是Java Timer類?如何建立一個有特定時間間隔的任務?

134,Java中的同步集合與併發集合有什麼區別?

135,同步方法和同步塊,哪個是更好的選擇?

136,什麼是執行緒池? 為什麼要使用它?

137,Java中invokeAndWait 和 invokeLater有什麼區別?

138,多執行緒中的忙迴圈是什麼?

 

贏在面試之Java泛型篇(14)

139. Java中的泛型是什麼 ? 使用泛型的好處是什麼?

140,Java的泛型是如何工作的 ? 什麼是型別擦除 ?如何工作?

141,你可以把List<String>傳遞給一個接受List<Object>引數的方法嗎?

142,如何阻止Java中的型別未檢查的警告?

143,Java中List<Object>和原始型別List之間的區別?

144,編寫一段泛型程式來實現LRU快取?

145,Array中可以用泛型嗎?

146,如何編寫一個泛型方法,讓它能接受泛型引數並返回泛型型別?

147,C++模板和java泛型之間有何不同?

 

 

贏在面試之JavaWeb篇(15)

148,AJAX有哪些有點和缺點?

149,AJAX應用和傳統Web應用有什麼不同?

150,Ajax的實現流程是怎樣的?

151,簡單說一下資料庫的三正規化?

152,Java集合框架是什麼?說出一些集合框架的優點?

153,Java集合框架的基礎介面有哪些?

154,集合框架中的泛型有什麼優點?

155,Enumeration和Iterator介面的區別?

156,Iterater和ListIterator之間有什麼區別?

157,我們如何對一組物件進行排序?

158,與Java集合框架相關的有哪些最好的實踐?

159,什麼是事務?

160,說說你開發中遇到過什麼難題啊?怎麼解決