1. 程式人生 > >Java面試中最常用的170道面試題全集

Java面試中最常用的170道面試題全集

1、面向物件的特徵有哪些方面?

2、訪問修飾符public,private,protected,以及不寫(預設)時的區別?

3、String 是最基本的資料型別嗎?

4、float f=3.4;是否正確?

5、short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?

6、Java有沒有goto?

7、int和Integer有什麼區別?

8、&和&&的區別?

9、解釋記憶體中的棧(stack)、堆(heap)和靜態區(static area)的用法。

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

11、switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

12、用最有效率的方法計算2乘以8?

13、陣列有沒有length()方法?String有沒有length()方法?

14、在Java中,如何跳出當前的多重巢狀迴圈?

15、構造器(constructor)是否可被重寫(override)?

16、兩個物件值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?

17、是否可以繼承String類?

18、當一個物件被當作引數傳遞到一個方法後,此方法可改變這個物件的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞?

19、String和StringBuilder、StringBuffer的區別?

20、過載(Overload)和重寫(Override)的區別。過載的方法能否根據返回型別進行區分?

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

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

23、抽象類(abstract class)和介面(interface)有什麼異同?

24、靜態巢狀類(Static Nested Class)和內部類(Inner Class)的不同?

25、Java 中會存在記憶體洩漏嗎,請簡單描述。

26、抽象的(abstract)方法是否可同時是靜態的(static),是否可同時是本地方法(native),是否可同時被synchronized修飾?

27、闡述靜態變數和例項變數的區別。

28、是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的呼叫?

29、如何實現物件克隆?

31、String s = new String("xyz");建立了幾個字串物件?

32、介面是否可繼承(extends)介面?抽象類是否可實現(implements)介面?抽象類是否可繼承具體類(concrete class)?

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

34、Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?

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

36、Java 中的final關鍵字有哪些用法?

38、資料型別之間的轉換:

39、如何實現字串的反轉及替換?

40、怎樣將GB2312編碼的字串轉換為ISO-8859-1編碼的字串?

41、日期和時間:

42、列印昨天的當前時刻。

43、比較一下Java和JavaSciprt。

44、什麼時候用斷言(assert)?

45、Error和Exception有什麼區別?

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

47、Java語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally分別如何使用?

48、執行時異常與受檢異常有何異同?

49、列出一些你常見的執行時異常?

50、闡述final、finally、finalize的區別。

51、類ExampleA繼承Exception,類ExampleB繼承ExampleA。

請問執行此段程式碼的輸出是什麼?

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

53、闡述ArrayList、Vector、LinkedList的儲存效能和特性。

54、Collection和Collections的區別?

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

56、TreeMap和TreeSet在排序時如何比較元素?Collections工具類中的sort()方法如何比較元素?

57、Thread類的sleep()方法和物件的wait()方法都可以讓執行緒暫停執行,它們有什麼區別?

58、執行緒的sleep()方法和yield()方法有什麼區別?

59、當一個執行緒進入一個物件的synchronized方法A之後,其它執行緒是否可進入此物件的synchronized方法B?

60、請說出與執行緒同步以及執行緒排程相關的方法。

61、編寫多執行緒程式有幾種實現方式?

62、synchronized關鍵字的用法?

63、舉例說明同步和非同步。

64、啟動一個執行緒是呼叫run()還是start()方法?

65、什麼是執行緒池(thread pool)?

66、執行緒的基本狀態以及狀態之間的關係?

67、簡述synchronized 和java.util.concurrent.locks.Lock的異同?

68、Java中如何實現序列化,有什麼意義?

69、Java中有幾種型別的流?

70、寫一個方法,輸入一個檔名和一個字串,統計這個字串在這個檔案中出現的次數。

71、如何用Java程式碼列出一個目錄下所有的檔案?

72、用Java的套接字程式設計實現一個多執行緒的回顯(echo)伺服器。

73、XML文件定義有幾種形式?它們之間有何本質區別?解析XML文件有哪幾種方式?

74、你在專案中哪些地方用到了XML?

75、闡述JDBC操作資料庫的步驟。

76、Statement和PreparedStatement有什麼區別?哪個效能更好?

77、使用JDBC操作資料庫時,如何提升讀取資料的效能?如何提升更新資料的效能?

78、在進行資料庫程式設計時,連線池有什麼作用?

79、什麼是DAO模式?

80、事務的ACID是指什麼?

81、JDBC中如何進行事務處理?

82、JDBC能否處理Blob和Clob?

83、簡述正則表示式及其用途。

84、Java中是如何支援正則表示式操作的?

85、獲得一個類的類物件有哪些方式?

86、如何通過反射建立物件?

87、如何通過反射獲取和設定物件私有欄位的值?

88、如何通過反射呼叫物件的方法?

89、簡述一下面向物件的"六原則一法則"。

90、簡述一下你瞭解的設計模式。

91、用Java寫一個單例類。

92、什麼是UML?

93、UML中有哪些常用的圖?

94、用Java寫一個氣泡排序。

95、用Java寫一個折半查詢。

96、闡述Servlet和CGI的區別?

97、Servlet介面中有哪些方法?

98、轉發(forward)和重定向(redirect)的區別?

99、JSP有哪些內建物件?作用分別是什麼?

100、get和post請求的區別?

101、常用的Web伺服器有哪些?

102、JSP和Servlet是什麼關係?

103、講解JSP中的四種作用域。

104、如何實現JSP或Servlet的單執行緒模式?

105、實現會話跟蹤的技術有哪些?

106、過濾器有哪些作用和用法?

107、監聽器有哪些作用和用法?

108、web.xml檔案中可以配置哪些內容?

109、你的專案中使用過哪些JSTL標籤?

110、使用標籤庫有什麼好處?如何自定義JSP標籤?

111、說一下表達式語言(EL)的隱式物件及其作用。

112、表示式語言(EL)支援哪些運算子?

113、Java Web開發的Model 1和Model 2分別指的是什麼?

114、Servlet 3中的非同步處理指的是什麼?

115、如何在基於Java的Web專案中實現檔案上傳和下載?

116、伺服器收到使用者提交的表單資料,到底是呼叫Servlet的doGet()還是doPost()方法?

117、JSP中的靜態包含和動態包含有什麼區別?

118、Servlet中如何獲取使用者提交的查詢引數或表單資料?

119、Servlet中如何獲取使用者配置的初始化引數以及伺服器上下文引數?

120、如何設定請求的編碼以及響應內容的型別?

121、解釋一下網路應用的模式及其特點。

122、什麼是Web Service(Web服務)?

123、概念解釋:SOAP、WSDL、UDDI。

124、Java規範中和Web Service相關的規範有哪些?

125、介紹一下你瞭解的Java領域的Web Service框架。

126、什麼是ORM?

127、持久層設計要考慮的問題有哪些?你用過的持久層框架有哪些?

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

129、Hibernate中Session的load和get方法的區別是什麼?

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

131、闡述Session載入實體物件的過程。

132、Query介面的list方法和iterate方法有什麼區別?

133、Hibernate如何實現分頁查詢?

134、鎖機制有什麼用?簡述Hibernate的悲觀鎖和樂觀鎖機制。

135、闡述實體物件的三種狀態以及轉換關係。

136、如何理解Hibernate的延遲載入機制?在實際應用中,延遲載入與Session關閉的矛盾是如何處理的?

137、舉一個多對多關聯的例子,並說明如何實現多對多關聯對映。

138、談一下你對繼承對映的理解。

139、簡述Hibernate常見優化策略。

140、談一談Hibernate的一級快取、二級快取和查詢快取。

141、Hibernate中DetachedCriteria類是做什麼的?

142、@OneToMany註解的mappedBy屬性有什麼作用?

143、MyBatis中使用<code>#</code>和<code>$</code>書寫佔位符有什麼區別?

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

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

146、什麼是IoC和DI?DI是如何實現的?

147、Spring中Bean的作用域有哪些?

148、解釋一下什麼叫AOP(面向切面程式設計)?

149、你是如何理解"橫切關注"這個概念的?

150、你如何理解AOP中的連線點(Joinpoint)、切點(Pointcut)、增強(Advice)、引介(Introduction)、織入(Weaving)、切面(Aspect)這些概念?

151、Spring中自動裝配的方式有哪些?

152、Spring中如何使用註解來配置Bean?有哪些相關的註解?

153、Spring支援的事務管理型別有哪些?你在專案中使用哪種方式?

154、如何在Web專案中配置Spring的IoC容器?

155、如何在Web專案中配置Spring MVC?

156、Spring MVC的工作原理是怎樣的?

157、如何在Spring IoC容器中配置資料來源?

158、如何配置配置事務增強?

159、選擇使用Spring框架的原因(Spring框架為企業級開發帶來的好處有哪些)?

160、Spring IoC容器配置Bean的方式?

161、闡述Spring框架中Bean的生命週期?

162、依賴注入時如何注入集合屬性?

163、Spring中的自動裝配有哪些限制?

164、在Web專案中如何獲得Spring的IoC容器?

165. 大型網站在架構上應當考慮哪些問題?

166、你用過的網站前端優化的技術有哪些?

167、你使用過的應用伺服器優化技術有哪些?

168、什麼是XSS攻擊?什麼是SQL注入攻擊?什麼是CSRF攻擊?

169. 什麼是領域模型(domain model)?貧血模型(anaemic domain model)和充血模型(rich domain model)有什麼區別?

170. 談一談測試驅動開發(TDD)的好處以及你的理解。

答案參考java面試題集http://www.wityx.com