Java程式設計師面試指南

Java程式設計師面試指南

《Java程式設計師面試指南》是2009年電子工業出版社出版的圖書,作者是張昆。

基本信息

內容簡介

Java程式設計師面試指南 Java程式設計師面試指南

本書的主要內容:

第一篇(第1章)介紹了求職面試前都需要做好哪些準備工作:如何做好自己的職業規劃;掌握面試的流程,在以後的面試中不會感到陌生,消除恐懼;怎樣製作一個令人滿意、訪問量高的簡歷;去參加面試的時候著裝上都需要注意什麼;了解面試官會經常問的問題,以備不時之需;對於多個offer(錄用通知)需要選擇時,是選擇大公司還是小公司?

第二篇(第2章~第13章)介紹了Java程式設計師涉及的基礎知識,內容包括Java語言基礎、異常的處理、I/O控制流、面向對象編程、執行緒、集合以及資料庫技術等基本知識點。

第三篇(第14章~第16章)專門介紹了Java開發的高端Web開發的相關題目,內容包括J2EE技術、XML/UML以及Servlet/JSP技術。

第四篇(第17章~第18章)專門介紹了基本的上機編程題目,涉及常見的算法、字元串操作和常見的排序原理相關題目。同時介紹了常見的對資料庫操作的SQL語句。另外還介紹了當前經常出現的思維拓展題目,首先介紹了思維拓展編程題目,該題目的特點是需要自己建立模型,然後編程實現;最後介紹了一些智力測試題,幫助讀者熟悉出題思路和解答技巧。

本書具有涉及面廣、分析透澈徹、實例精彩的特點,力求以全面的知識性及豐富的實例來指導讀者突破面試難關,非常適合剛走出校門,初次進入IT領域的畢業生使用;同時也可以作為國中級Java程式設計師以及想了解Java或者相關技術的人員的參考書籍,特別適合想從事Java程式開發的畢業生學習使用。

前言

從企業面試的角度來梳理Java程式設計師的技術功底

以技術經理的眼光來審視對Java編程知識的掌握

隨著Java框架的逐漸成熟,其功能越來越強大,使用越來越簡便,其使用範圍越來越廣,使用人數也越來越多。Java在帶來方便的同時,無形中也帶了不便,作為軟體開發的王牌語言,各企業對Java程式設計師的要求也不斷的提升,所以,求職面試成了Java程式設計師們最頭疼又不得不面對的現實。為了給廣大Java程式設計師面試提供最貼心的指導,作者蒐集整理了大量Java程式設計師面試的資料,並結合自己主持面試的經歷,寫作了本書,希望能對廣大Java程式設計師的面試具有一定的指導意義。

求職者在面試中的常見問題

同樣作為軟體開發出身的我,身邊有朋友,也有同事。在和他們交談的過程中,我發現如今的面試難度要比以往難得多,自以為準備得很充分,胸有成竹地認為可以順利通過,但事實並非如同他們預想的那樣,面試常見的問題如下:

(1)面試過程中不是題目頗深就是難度頗大,不經過縝密細緻的思考是不會得出正確答案的。例如:,String s = new String("xyz");創建了幾個String Object呢?這個問題還真得好好想想,不要輕易地下結論。

(2)陷阱是又多又狠,隱藏得很深,沒有一雙慧眼還真難辨虛實。例如:,if(-0.0 == 0.0)是相等還是不等?

(3)面試的花樣也越來越多,在比較傳統的筆試→面試的基礎上,又增加了相當折磨人的“魔鬼測試”→“壓力測試”,而且這種測試相當火,很多招聘企業都在使用。例如:,“你都將自身排到最終一名了,你還會被錄用嗎?”如果你是面試者該怎樣回答呢?

(4)增加了綜合測試及外語能力測試。如今商品都實行了面向全球化,自然IT領域也有面向全球的發展驅趨勢,同時,隨著越來越多的外藉籍人員的加入,很多企業不得不對外語提高重視力度。面對這樣那樣的問題,有些經驗豐富的高級程式設計師都應接不暇,更何況是剛走出校園的白面小生。例如:,考官會讓面試者用英文進行自我介紹,這是外語能力測試最基礎的測試內容。

本書的特點

針對上面的種種情況,筆者憑藉在IT界多年的工作經驗和多個大型實際項目開發的優勢,由原來的一個普通職員晉升為一個去考別人的主考官,主要負責公司技術人員的面試工作,通過一年多的面試經驗和與公司內資歷比較深厚的HR經理的多次交流,總結了一些面試中常見的問題,對考官提出的災難性問題給出了巧妙的應答。從面試題目內容的角度總結和歸納出知識點,幫助讀者快速準備Java程式設計師的面試,提高晉級的機會。

需要聲明的是,本書不是一本教程,不會細緻到每一個操作步驟的說明、每一個細節的詳細講解、每一個開發工具的安裝過程。本書主要是為有了一定Java基礎卻無法應對面試的人而服務的。通過一些建議和方法幫助他們儘快就職。

建議讀者在熟練掌握相關技術內容後再閱讀本書,也不要認為“寶典”是一本萬能書,一個合格的程式設計師,不是混過面試就能萬事大吉的,具備扎紮實實的編程技術才是最重要的。本書具有如下特點:

· 針對性強,用來幫助讀者應對Java程式設計師面試。主要包括職業規劃的設定、中英文簡歷的製作、簡歷投遞的注意事項、如何加大簡歷的瀏覽數量、面試的相關流程和應對突發事件的技巧等。

· 考前回顧,在進入每章的試題分析之前,都會有相應的知識點回顧,可以幫助讀者理解該章的考試重點。

· 選取各大公司的經典試題,每個試題都會有詳細的試題分析,可以幫助讀者加深理解。

· 層次分明,會對重點內容進行細緻的講解和描述,對次要的內容講解篇幅略短,有的甚至會一帶而過,可以幫助讀者分清主次,了解應該在哪些地方多下功夫下工夫,不會出現盲目不知所措的局面。

· 涉及內容廣泛,涉及技術新,例如在其他相關面試書籍中從未出現過的EJB3.0規範等內容。

· 操作性強,本書含有大量經典的、出現頻率頗高的上機測試題,可以幫助讀者加深理解。

作者

本書主要由張昆編寫,其他參與編寫的人員有張增強、方振宇、陳冠佐、傅奎、陳勤、梁洋洋、畢夢飛、陳慶、柴相花、陳非凡、陳華、陳嵩、承卓、陳先在、樊麗、房健、陳科、公芳亮、郭剛、陳松、季國飛。

目錄

第一篇 求職你準備好了嗎

第1章 面試前必須知道的幾件事 18

一次次的求職面試考試,就像一場場無形的戰役一樣,決定著不同的人生和不同人的命運。如果想在戰役中取得勝利,就必須做到知己知彼,才能百戰百勝。想要在眾多對手中脫穎而出,靠的不再是健壯的體魄,而是靈敏的思維和充分的準備,在戰鬥即將打響之際,你準備好了嗎?通過學習本書,你將準備充分,信心十足,摩拳擦掌等待戰場上大顯身手的那一刻。

1.1 做好自己的職業規劃 18

1.1.1 走好職業生涯第一步 18

1.1.2 確定符合自己的人生目標 19

1.1.3 緊跟社會發展的步伐 19

1.1.4 為職業生涯畫上圓滿的句號 20

1.2 面試的流程 20

1.2.1 填寫求職申請表 20

1.2.2 筆試 20

1.2.3 面試 21

1.2.4 壓力測試 23

1.2.5 外語能力測試 24

1.2.6 綜合測試 24

1.3 一個漂亮的簡歷 25

1.3.1 中文簡歷的製作 25

1.3.2 英文簡歷的製作 26

1.3.3 如何用E-mail投遞簡歷 27

1.3.4 簡歷瀏覽量低的原因 28

1.3.5 華麗的辭藻未必是美的 29

1.3.6 簡歷被篩選的秘密 30

1.4 著裝要注意的問題 30

1.4.1 面試著裝(男生篇) 30

1.4.2 面試著裝(女生篇) 31

1.5 面試官經常問到的幾個問題 31

問題1 談談你的缺點 31

問題2 你為什麼選擇我們公司 32

問題3 對這項工作,你有哪些可預見的困難 32

問題4 如果我錄用你,你將怎樣開展工作 32

問題5 與上級意見不一時,你將怎么辦 33

問題6 你能為我們做什麼 33

問題7 你是應屆畢業生,缺乏經驗,如何能勝任這項工作 33

問題8 你希望與什麼樣的上級共事 34

問題9 你在前一家公司離職的原因是什麼 34

問題10 你以前的上級對你的評價如何 35

問題11 如果你的工作出現失誤,給本公司造成經濟損失,你認為該怎么辦 35

問題12 怎樣理解團隊?請舉例並說明啟示 36

1.6 大公司VS小公司 36

1.6.1 大公司VS小公司的區別 36

1.6.2 大公司的利和弊 37

1.6.3 小公司的利和弊 37

第二篇 Java程式設計

第2章 Java程式基礎 40

學好Java最重要的一個步驟就是上機編程,熟悉Java的開發運行環境是成為一個Java程式設計師的第一步。通過Java編程基礎方面的考查,可以全面體現面試者對於Java語言的理解程度和熟練程度。在本章內容中通過真實的面試題,從多個角度講解Java編程基礎部分的考點,使面試者能夠快速掌握Java面試的要領,提高自己在面試中成功的機率。

2.1 環境搭建與開發 40

面試題1 如何在Linux環境下安裝JDK 44

面試題2 如何編譯運行應用程式 46

面試題3 Java開發工具 48

面試題4 關於Java命令提示符的問答題 49

2.2 Java語言概述 52

面試題5 關於Java命名規範的代碼分析題 53

面試題6 關於Java代碼安全的選擇題 54

面試題7 關於Java語言的特性的問答題 55

面試題8 關於Java的類和對象的選擇題 56

2.3 變數與常量 57

面試題9 變數及其範圍 57

面試題10 根據代碼找出錯誤原因 58

面試題11 修改錯誤代碼 59

面試題12 關於靜態方法的代碼分析題 59

面試題13 關於在類中定義方法的選擇題 60

面試題14 關於main()的選擇題 60

面試題15 關於靜態變數的選擇題 60

面試題16 關於實例成員和類成員區別 61

面試題17 找出錯誤的代碼 63

第3章 Java語言符號 65

Java程式語言同其他程式語言一樣,也是由語法規則和語義定義組成的。語法規則制定了由語言元素構造合法的句式,語義定義則解釋了這些句式的含義,應深刻理解各知識點的概念,牢記一些Java的語法,從而達到學習的目的。

3.1 標識符 65

面試題1 選擇合法的標識符 65

面試題2 找出錯誤的代碼 66

3.2 關鍵字 67

面試題3 Java中的關鍵字1 67

面試題4 Java中的關鍵字2 68

面試題5 關鍵字語法含義 68

3.3 分隔設定 69

面試題6 Java中的注釋1 70

面試題7 Java中的注釋2 70

3.4 算數運算符 71

面試題8 求表達式的結果 74

面試題9 編程計算103的值 74

3.5 關係運算符 75

面試題10 確定x的取值範圍 75

面試題11 equals()和== 76

面試題12 分析程式寫出結果 77

3.6 邏輯運算符 77

面試題13 根據程式選擇正確的運行結果 80

3.7 位運算符 80

面試題14 指出錯誤代碼的位置 84

面試題15 選出相等的值 85

面試題16 根據代碼,推測結果 85

3.8 條件運算符 86

面試題17 關於條件運算符的操作規則 86

3.9 賦值運算符 87

面試題18 選出正確的賦值語句 88

3.10 優先權和結合性 88

面試題19 運算符的結合性測試 89

面試題20 寫出程式運行結果 90

第4章 數據類型及類型轉換 91

數據類型是指數據的內在表現形式。Java語言是一個強調數據類型的語言,在聲明任何變數時,必須將該變數定義為一種數據類型。根據數據的不同形式,數據劃分為多種不同的類型。數據類型不同,所進行的運算就不同,取值範圍也不同。Java提供的數據類型包括基本數據類型和複合數據類型。

4.1 整型數據 91

面試題1 int和Integer有什麼區別 92

面試題2 正確的賦值方式 93

面試題3 選擇合法的聲明 93

面試題4 正確表示八進制值 94

面試題5 Java的原始數據類型 94

面試題6 int的取值範圍 95

面試題7 根據代碼選擇正確的答案 95

面試題8 正確表示10的十六進制值 96

面試題9 判斷表達式的正誤 96

4.2 實型數據 96

面試題10 選出對float變數的合法聲明 98

面試題11 正確的賦值 98

面試題12 合法的聲明 99

4.3 字元型數據 99

面試題13 char的取值範圍 100

面試題14 哪些表達式的結果是正確的 101

面試題15 在char中是否能存儲漢字 101

4.4 布爾型數據 102

面試題16 對boolean型變數的聲明哪個是正確的 103

面試題17 選出合法的表達式 103

4.5 數據類型轉換 104

面試題18 選出合法的類型轉換 107

面試題19 基本數據類型與String之間的轉換 108

4.6 值傳遞 108

面試題20 選擇正確的結果 108

面試題21 final的參數傳遞 111

第5章 數組與字元串 113

本章介紹Java中預定義的兩個類:數組與字元串。它們也是所有程式設計語言必須要處理的兩類數據結構。在傳統語言(如C)中,數組和字元串都只是一片連續的記憶體空間,用於存放同類型的數據,語言本身並沒有為它提供更多的支持。Java將其設計為對象,內置了更多的方法,降低了程式設計師的工作量。另外,Java會對數組的下標進行檢測,如果有下標越界的情況,就會及時報告,避免了困擾C/C++程式設計師的一大難題。

5.1 一維數組 113

面試題1 選擇合法的數組聲明 115

面試題2 對數組進行初始化 116

面試題3 默認初始化 116

面試題4 根據代碼選擇正確的答案 117

面試題5 根據代碼選出對結果正確描述的選項 118

面試題6 編程題(求最大數) 118

5.2 二維數組 119

面試題7 判斷程式的運行結果 122

面試題8 將正確的選項插入指定的位置 123

面試題9 選擇二維數組的合法聲明 123

面試題10 獲得數組的大小 124

面試題11 編程題(根據要求設計程式) 124

5.3 類String字元串 127

面試題12 分析代碼的輸出結果 130

面試題13 String的數據類型 131

面試題14 判斷程式的返回結果 131

面試題15 判斷創建的對象個數 132

5.4 類StringBuffer字元串 133

面試題16 String和StringBuffer的區別 135

面試題17 正確的構造方法 135

面試題18 setLength方法的作用 136

第6章 流程控制 137

什麼是流程控制?流程就是做一件事情的順序,或者說是次序。在程式設計中,流程就是要完成一個功能,而流程控制則是指如何在程式設計中控制完成某種功能的次序。

語句是程式的控制成分,它具有特定的語法規則和嚴格的表達方法,用來控制程式的運行,因此語句也是一些具有結構化的控制結構。這些控制結構可以歸為三類:順序結構、選擇結構和循環結構。實現這些控制結構的語句可分為5類:表達式語句、複合語句、分支語句、循環語句和跳轉語句。本章將逐一介紹這些語句。

6.1 if控制語句 137

面試題1 分析代碼的運行結果 140

面試題2 寫出if語句的運行結果 140

面試題3 分析程式代碼是否有錯 141

面試題4 編程題 142

6.2 switch控制語句 142

面試題5 分析代碼的運行結果 144

面試題6 根據已知結果選擇未知條件 145

面試題7 switch語句的使用範圍 146

面試題8 找出代碼中的錯誤並改正 146

面試題9 編程題 147

6.3 循環控制語句 147

面試題10 選出錯誤代碼的位置(while) 151

面試題11 分析代碼選擇正確的

答案(for) 152

面試題12 寫出程式的運行結果(do-while) 153

面試題13 判斷do…while語句的輸出結果 153

面試題14 編程題 154

6.4 跳轉控制語句 156

6.4.1 break跳轉語句 156

6.4.2 continue跳轉語句 157

6.4.3 return返回語句 159

面試題15 分析程式的運行結果 160

面試題16 關於break和continue的描述哪些是正確的 161

面試題17 可以返回最大值的方法 161

面試題18 編程題 162

第7章 異常處理及記憶體管理 163

在實際項目開發過程中,經常會遇到這樣的問題,例如某程式在編譯時沒有產生錯誤信息,但在程式運行時,經常會出現一些運行時的錯誤,這種錯誤對Java而言就是一種異常。異常指的是程式在運行時發生的錯誤或者不正常的狀況,有了異常就要有相應的處理方式。異常處理是Java的一個優點,在異常處理中,它的處理機制設計先進、使用方便,不僅提高了程式的健壯性,而且還大大降低了程式設計師的編程工作量。因此想成功地成為一名合格的Java程式設計師,掌握好異常處理機制是編寫大型程式必不可少的基本功。

7.1 異常的分類 163

面試題1 運行時異常與一般異常的異同 165

面試題2 所有異常的基礎類 166

7.2 異常的處理方式之一:try/catch 166

面試題3 分析代碼的運行結果 168

面試題4 對try-catch-finally的正確理解 169

面試題5 分析代碼的運行結果 169

7.3 異常的處理方式之二:throws 170

面試題6 正確的異常聲明方式 172

面試題7 使用throws處理異常 172

7.4 異常的處理方式之三:throw 173

面試題8 分析程式的運行結果 175

面試題9 異常處理 176

7.5 記憶體的管理 178

面試題10 垃圾回收 178

面試題11 對象在什麼地方變得

適用於垃圾收集 180

面試題12 對垃圾回收的正確描述 181

面試題13 關於finalize()的正確描述 182

面試題14 垃圾收集 184

面試題15 Sun公司程式設計師考試中的

常見題型 184

第8章 輸入/輸出流 186

如果一個應用程式沒有輸入和輸出,那么就不能給使用者提供所需要的信息。輸入和輸出也是整個應用程式為用戶提供的接口,讓用戶能夠清楚此應用程式的目的是什麼、要做什麼等。例如,從鍵盤上輸入一些數據,在顯示器上顯示數據,並將其存入一個檔案中,這些都會涉及信息輸入/輸出的處理。在Java中,信息的輸入和輸出(I/O)是程式設計語言中一個很重要的部分。I/O就是指應用程式對這些設備的數據輸入與輸出,在程式中,鍵盤被用做檔案輸入,顯示器被用做檔案輸出。

8.1 File類 186

8.1.1 目錄和檔案管理 186

8.1.2 隨機存取檔案Random

AccessFile類 188

面試題1 FileInputStream類構造方法的參數 192

面試題2 建立檔案“file.txt” 192

8.2 Stream類 192

8.2.1 位元組流的處理方式 193

8.2.2 Reader類和Writer類 196

8.2.3 FileReader和FileWriter類 199

8.2.4 BufferedReader和BufferedWriter類 200

面試題3 InputStream類中的方法 202

面試題4 什麼是System.out 202

面試題5 分析代碼的編譯運行結果 203

面試題6 將字元寫入檔案末尾 203

面試題7 補全程式 204

面試題8 創建一個InputStream

Reader的實例 205

面試題9 編程題 205

第9章 面向對象 207

面向對象編程(Object Oriented Programming,OOP)對於IT界的將士來說並不陌生,因為從跨入IT界的大門開始,首先接觸的就是OOP,每個人每天都在說OOP,要有OOP思想,但是什麼是OOP?什麼是OOP思想呢?不論是剛接觸Java的小將,還是工作多年的老將,對這個問題都感到很茫然,感覺很抽象化,腦海里只是一個模糊的概念,因為問題的抽象化,理解的難度大,所以大部分的招聘企業將其作為考核的標準,因此如何理解OOP設計思想、繼承及接口等是面試中常見的考試內容。

9.1 抽象 207

9.2 繼承 208

面試題1 分析程式的輸出結果 210

面試題2 根據給定代碼判斷輸出

結果 211

面試題3 對程式的正確分析 212

9.3 封裝 213

9.3.1 成員變數的封裝 213

9.3.2 成員函式的封裝 215

面試題4 類的描述 216

面試題5 對封裝的理解 217

9.4 多態 217

9.4.1 方法重載 217

9.4.2 方法重寫 218

面試題6 分析所執行的代碼 219

面試題7 分析代碼的運行結果 220

面試題8 實現多態的機制 221

9.5 內部類 222

面試題9 實例分析 222

9.5.1 在類中創建一個內部類的實例 223

9.5.2 在對象中創建一個內部類的

實例 224

9.5.3 關於final聲明的一個實例 225

面試題10 分析代碼的輸出結果 227

面試題11 關於內部類的問答題 228

面試題12 找出代碼中的錯誤 228

9.6 抽象類 228

面試題13 關於抽象方法的問題 231

面試題14 編程題,仔細看清代碼的

需求 231

9.7 接口 233

面試題15 抽象類和接口的區別 235

面試題16 根據代碼找出錯誤 235

9.8 方法的重寫和重載 236

9.8.1 方法重寫的實例 236

9.8.2 方法重載的實例 237

面試題17 重寫和重載的區別 239

面試題18 哪些方法可以加入類

Man中 239

9.9 構造函式 240

9.9.1 合法的構造函式 240

面試題19 選擇合法的構造函式 241

9.9.2 構造函式重載 241

面試題20 寫出程式的運行結果 242

面試題21 關於構造函式的選擇題 244

面試題22 指出代碼的錯誤之處 244

面試題23 針對this()方法的找錯題 245

第10章 Java的多執行緒 246

到目前為止,在傳統的程式語言裡,大多數的程式設計者習慣上考慮怎樣使程式從頭到尾順序地執行各任務的方法,即一個程式只有一條執行路線,但是在生活中會有很多過程是同時發生的。Java的“多執行緒”恰可彌補這個缺憾,它可以讓不同的程式塊一起運行,可以讓程式運行更為順暢,也可以達到多任務同時處理的目的。

10.1 認識執行緒 246

10.1.1 執行緒的5種狀態 246

10.1.2 關於單執行緒的一個實例 247

面試題1 關於執行緒基礎的簡答題 248

面試題2 對執行緒的正確敘述 248

10.2 多執行緒的創建方式 249

10.2.1 繼承Thread類創建執行緒的方式 249

10.2.2 實現Runnable接口創建執行緒的方式 250

面試題3 簡要回答創建執行緒的兩種

方式及區別 253

面試題4 對Threads的正確描述 253

10.3 執行緒和進程 253

10.4 執行緒的同步 254

10.4.1 多執行緒同步代碼塊 255

10.4.2 多執行緒同步方法 256

面試題5 執行緒同步的方法 257

面試題6 分析代碼片段 258

面試題7 找出代碼中的錯誤 259

面試題8 分析程式的輸出結果 259

面試題9 指向不同類實例的多執行緒 260

面試題10 編程題(Thread和Runnable) 262

10.5 執行緒的操作 263

面試題11 設定執行緒名稱 263

面試題12 關於isAlive()的推測題 264

面試題13 關於resume()的選擇題 265

面試題14 關於sleep()和write()的簡答題 266

面試題15 關於yield()方法的選擇題 266

面試題16 編程題 266

第11章 包和訪問控制 270

在Java里,可以將具有相似功能和具有共用性質的類和接口放到一個檔案里,這樣既可以劃分類名空間,又可以控制類之間的訪問。再將這些檔案一起編譯執行,如此的程式代碼將更易於維護。同時在將類分割開之後對於類的使用也就有了相應的訪問許可權。本章將介紹如何使用包及訪問控制許可權。

11.1 包的創建及使用 270

11.1.1 包的創建 270

11.1.2 包的使用 271

面試題1 選擇正確的代碼片段 273

面試題2 選擇正確的Java語法 274

面試題3 了解native聲明 274

面試題4 選擇正確的答案 275

11.2 Java常用類庫 275

11.2.1 Java JDK中的常用軟體包 275

11.2.2 容易混淆的軟體包 277

面試題5 Object中hasCode()的返回類型值 278

面試題6 Object類中的clone()方法 280

面試題7 hasCode()與equals() 280

面試題8 Math.abs()方法的使用 280

面試題9 Math. ceil(-6.8)的值等於多少 282

面試題10 誰的值會等於12 282

11.3 訪問控制 283

面試題11 不能被外部類所訪問的修飾符 285

面試題12 只能被同包中的類訪問的修飾符 286

面試題13 正確的聲明 286

面試題14 類中的調用方法 287

第12章 類集框架 288

在計算機科學中,有兩門很重要的課程——數據結構和算法——來告訴你如何完成常見的任務。由於人們對這兩者的學習和理解是相當有難度的,所以Java的設計者為了幫助程式設計師能夠快速越逾壕溝,設計了大量的方法,將常用的數據結構和算法封裝在裡面。這些處理數據結構和算法的類,都統一放在集合庫中,本章就將介紹這些類的使用。

12.1 類集接口 288

12.1.1 Collection接口的使用方法 288

12.1.2 List接口的使用方法 289

12.1.3 Set接口的使用方法 290

12.1.4 SortedSet接口的使用方法 290

12.1.5 Iterator接口的使用方法 291

面試題1 Collection和Collections的區別 291

面試題2 用什麼方法來區分Set里的元素是否重複 292

面試題3 Collection接口的子接口 292

面試題4 集合框架中的核心接口 292

面試題5 可以按序存放元素的集合接口 293

面試題6 根據程式代碼選擇正確的選項 293

12.2 接口實現類的使用 294

12.2.1 List接口的實現類 294

12.2.2 Set接口的實現類 299

12.2.3 Map映射接口 301

面試題7 HashMap和Hashtable的區別 302

面試題8 heap和stack的區別 302

面試題9 常用的類集合 303

面試題10 關於List、Map、Set的問答題 303

面試題11 關於ArrayList、Vector、LinkedList的問答題 303

面試題12 覆蓋方法 303

面試題13 分析代碼的輸出結果 304

面試題14 寫出程式的輸出結果 305

面試題15 接口java.util.Map.Entry中定義的原型是什麼 305

面試題16 如何實現hashCode()方法 306

面試題17 實現Map接口的對象 307

第13章 資料庫 308

本章介紹如何使用Java類庫中的類來編寫資料庫應用程式,資料庫(Database)在程式中扮演著重要的角色。大部分實用的應用程式都會使用資料庫來存儲信息。資料庫與應用程式相互獨立,資料庫負責持久化數據,應用程式負責業務邏輯。要學習資料庫編程,除了學習Java類庫中的有關類如JDBC,還需要專門學習資料庫的查詢語言——SQL,學習這種專門為資料庫設計的語言,就可以在Java程式中編寫資料庫應用程式。語言學習完畢後,還要學習資料庫軟體,對資料庫進行可視化操作。如Oracle、MySQL等大型資料庫。

13.1 SQL 308

13.1.1 SQL的基本數據定義語句 308

13.1.2 SQL的基本數據操作語句 312

13.1.3 SQL中的統計函式 315

面試題1 如何使用LIKE運算符 315

面試題2 如何使用ORDER BY

子句 316

面試題3 對約束的理解 316

面試題4 關於SQL的面試題(中興面試題) 316

13.2 JDBC資料庫編程 317

13.2.1 創建數據源 317

13.2.2 載入驅動程式 320

13.2.3 連線數據源 321

13.2.4 對資料庫的操作 321

面試題5 Connection類中的事物處理方法有哪些 325

面試題6 JDBC連線資料庫的步驟 325

面試題7 用JDBC寫一段程式 325

13.3 Oracle資料庫 327

面試題8 判斷SELECT語句的查詢結果 327

面試題9 處理分組的子句是什麼 327

面試題10 可以返回非空表達式的函式是什麼 327

面試題11 如何理解索引 328

面試題12 PL/SQL的內置數據類型是什麼 328

面試題13 什麼是視圖 328

面試題14 冷備份和熱備份的不同點及其各自的優點 329

面試題15 如何利用備份恢複數據庫 329

13.4 SQL Server資料庫 329

面試題16 COUNT(*)函式的作用是什麼 329

面試題17 請選擇正確的答案 330

面試題18 分析SQL語句的結果 330

面試題19 選擇正確的SQL語句 330

面試題20 TRUNCATE TABLE

命令的作用是什麼 331

面試題21 如何理解BETWEEN…AND 331

面試題22 選擇正確的SELECT語句 331

面試題23 SQL Sever的系統資料庫是什麼 332

面試題24 刪除數據表 332

面試題25 如何聲明游標 332

第三篇 Java Web開發

第14章 J2EE(Java EE)和EJB 3.0技術開發 334

J2EE是Java平台企業版的簡稱(Java Platform,Enterprise Edition),它包含一組技術規範與指南,包含許多組件,主要可以簡化且規範套用系統的開發與部署,進而提高可移植性、安全與再用價值。

J2EE基於Java SE,此外新加了企業套用所需的類庫。Sun公司在其Java平台企業版最初命名為J2EE,從J2EE 1.5版本後更名為Java EE 5.0。Java EE是軟體技術發展的結果。

14.1 J2EE的核心API與組件 334

面試題1 什麼是J2EE 336

面試題2 關於J2EE的名詞解釋 337

14.2 EJB組件 337

14.2.1 搭建EJB 3.0開發環境 337

14.2.2 Session Bean(會話Bean) 341

14.2.3 Message-Driven Bean

(訊息驅動Bean) 347

14.2.4 Entity Bean

(開發實體Bean) 350

面試題3 什麼是EJB 351

面試題4 EJB規定禁止的操作有哪些 352

面試題5 EJB與Java Bean有什麼區別 352

面試題6 EJB的類型有哪幾種 353

面試題7 Session Bean的分類 353

面試題8 開發無狀態會話Bean 353

面試題9 在Entity Bean中如何與表進行映射 354

面試題10 Entity Bean中哪些方法實現了數據同步 355

面試題11 Entity Bean的分類 356

面試題12 正確理解Message-Driven Bean 356

面試題13 Bean的生命周期範圍 356

14.3 常見的J2EE套用伺服器 357

面試題14 如何在WebLogic上部署EJB 357

面試題15 如何給WebLogic的記憶體指定大小 357

面試題16 J2EE的套用伺服器有哪些 358

面試題17 persistent與non-persistent的區別 358

面試題18 在WebLogic中發布EJB需要哪些配置檔案 358

面試題19 JBoss伺服器監聽服務默認連線埠是什麼 359

面試題20 創建一個Enterprise Application的同時還會

創建哪個組件 359

面試題21 選出錯誤的操作 359

面試題22 創建JDBC 360

第15章 XML、UML和MVC 361

在本章主要講解一下XML和UML的基本概念和簡單的使用方式以及MVC的含義。XML(eXtensible Markup Language)是由全球資訊網協會(W3C)推出的新一代數據交換的標準,翻譯成中文就是“可擴展標識語言”。UML(Unified Modeling Language)是一種建模語言,是進行需求分析和概要設計的主要工具。MVC(Model,View,Controller)是Application開發的設計模式。M是指數據模型;V是指用戶界面;C則是控制器。

15.1 XML 361

15.1.1 XML的基礎知識 361

15.1.2 XML解析模型 363

面試題1 XML有哪幾種解析技術 369

面試題2 如何使用XML技術 369

面試題3 選擇正確的描述 370

面試題4 在DTD中哪個元素屬性可加不可加 370

面試題5 XML的組成包括幾部分 371

面試題6 關於對於內部DTD文檔的

敘述,哪個選項是正確的 371

面試題7 在DTD文檔中CONTENT的規範 372

面試題8 什麼是對象模型(DOM) 372

15.2 UML 373

面試題9 選擇正確的UML類圖 376

面試題10 活動圖強調什麼 377

面試題11 跨越多個用例的單個

對象的行為類型圖 378

面試題12 什麼是用例圖 378

面試題13 用例之間的關係 379

面試題14 表示系統行為的圖有哪些 379

面試題15 用例圖由哪幾部分組成 380

面試題16 什麼是模型 380

15.3 MVC 380

面試題17 理解MVC設計模式 381

面試題18 MVC各個部分的實現

技術及實現方法 381

第16章 JSP/Servlet技術 382

在Java開發中,JSP/Servlet是屬於Web層技術,JSP與Servlet是一體的兩面,你可以使用單獨一項技術來解決動態網頁呈現的需求,但最好的方式是取兩者的長處,JSP是由網頁設計人員導向的,而Servlet是由程式設計人員導向的,目前國內的大部分Java開發均是Java Web開發,理清它們之間的職責可以讓兩個不同專長的團隊彼此合作,並降低相互間的牽製作用。所以,Servlet/JSP也是在Java程式設計師面試中必考的內容。

16.1 JSP的核心技術 382

16.1.1 JSP的基本語法 382

16.1.2 JSP指令 383

16.1.3 JSP動作 384

16.1.4 JSP內置對象 386

面試題1 在瀏覽器中如何訪問JSP

檔案 390

面試題2 分析代碼的輸出結果 390

面試題3 JSP頁面跳轉的方式 391

面試題4 JSP位於MVC模式的

哪一層 391

面試題5 標籤庫的指令 391

面試題6 <jsp:useBean>的屬性 392

面試題7 Page指令的屬性 392

面試題8 JSP的內置對象及其作用 392

面試題9 JSP注釋標籤的語法格式 393

面試題10 Page指令中屬性的作用 393

面試題11 Cookie的工作流程 394

面試題12 靜態頁面和動態頁面中

INCLUDE的作用是否

相同 394

面試題13 JSP的動作指令 395

16.2 Servlet的核心技術 395

16.2.1 Servlet接口 395

16.2.2 Servlet接口實現類 398

16.2.3 HttpServlet對象 399

16.2.4 Servlet的生命周期 399

16.2.5 Servlet之間的跳轉 400

面試題14 Servlet的生命周期 401

面試題15 Servlet的class檔案放在哪個目錄下 401

面試題16 ServletContext對象的產生 402

面試題17 Servlet配置中的標記 402

面試題18 Servlet位於MVC模式的哪一層 403

面試題19 在Servlet生命周期中,哪個方法只能調用一次 403

面試題20 標識會話的方法 403

面試題21 可以讀取ServletContext對象屬性的方法是什麼 404

面試題22 部署時,<Servlet>標籤中可以包含哪些標籤 404

面試題23 Servlet中的狀態碼 405

面試題24 在HttpServlet中,處理請求的方法有哪些 406

第四篇 算 法

第17章 常見的Java上機面試題 408

上機編程考試,要求面試者能夠根據題目的要求,使用一種編程工具,編寫全部代碼並調試運行。這主要是考查面試者代碼書寫和編程的熟練程度。值得注意的是,這類面試題要求能夠正確運行,往往要求面試者使用比較原始的JDK編譯方式也就是使用DOS命令提示符,而不是提供Eclipse或者JBuilder等快速開發環境。本章將經常出現的上機編程題進行分類,希望能夠給讀者帶來幫助和啟示。

17.1 Java基礎編程試題 408

面試題1 怎樣截取字元串 408

面試題2 怎樣實現元素互換 409

面試題3 怎樣實現元素排序 411

面試題4 怎樣實現Singleton模式編程 413

面試題5 哥德巴赫猜想的近似證明 414

面試題6 怎樣實現金額轉換 416

面試題7 愛因斯坦的階梯問題 420

面試題8 如何判斷迴文數字 421

17.2 資料庫編程試題 423

面試題9 根據表結構寫出相應的SQL語句 423

面試題10 編寫MySQL資料庫的JDBC連線 423

17.3 Java高級編程試題 424

面試題11 怎樣用SAX解析XML 425

面試題12 利用Servelt的doPost方法實現表單內容的讀取 427

面試題13 編程實現Servlet的記錄訪問功能 428

第18章 思維與智力測試 431

這類面試題對面試者提出了更高的要求。思維拓展方面的試題大體可以分為兩類,一類是思維拓展編程,首先需要面試者建立編程模型,然後使用代碼編程並給出答案;另一類是智力測試,考查面試者思考問題的方式方法和反應能力,不需要編程來解決問題。

18.1 思維拓展測試 431

面試題1 擲骰子遊戲 431

面試題2 求出最大公約數 433

面試題3 階乘階梯式的函式 434

面試題4 背包問題 436

面試題5 求最大的連續組合值(華為校園招聘筆試題) 438

面試題6 洗撲克牌(亂數排列) 440

面試題7 巧妙過橋 441

面試題8 字元移動(金山筆試題) 443

面試題9 八皇后問題 444

18.2 智力(IQ)測試 447

面試題10 找出質量不相同的球 448

面試題11 有多少人及格 449

面試題12 他說的是真話嗎 450

面試題13 哪個開關控制哪盞燈 450

面試題14 誰的存活機率最大 451

面試題15 猴子分桃 451

面試題16 三個女兒的年齡分別是多少 452

面試題17 哪一種是“王牌”花色 452

面試題18 巧猜撲克牌 453

面試題19 誰得第二名 454

面試題20 計時燒繩 454

面試題21 海盜分金問題 455

面試題22 聰明的法官 456

附錄A 個人簡歷英文辭彙速查 457

相關詞條

相關搜尋

熱門詞條

聯絡我們