《進入IT企業必讀的200個 NET面試題》是2011年電子工業出版社的圖書,作者是朱毅。
基本介紹
- 書名:進入IT企業必讀的200個 NET面試題
- 作者:朱毅
- ISBN:9787121140822
- 頁數:448
- 定價:59.80元
- 出版社:59.80元
- 出版時間:2011-8-1
- 裝幀:平裝
- 開本:16開
內容簡介,前言,目錄,
內容簡介
本書著重針對.NET技術職位的應聘者,在.NET框架各個技術類別中,選取最常出現在.NET面試中的問題,進行分析和解答,同時解釋和剖析與該問題相關的.NET機制原理,幫助讀者達到知其然更知其所以然的程度。本書幾乎包攬了所有常見的面試題,從基礎知識、資料庫,再到比較流行的XML、測試方法和算法,是目前市場上最新、最全的一本面試試題集錦。
全書配合了大量的圖例及代碼說明,非常適合正打算參加.NET技術職位的應聘和希望梳理.NET框架下技術點的讀者閱讀。
前言
從企業面試的角度來梳理.NET程式設計師的技術功底
以開發經理的眼光來審視編程知識的掌握
面試,是整個工作環境中的一扇門,是獲得一份工作的開始,也是剛畢業的人員跨進職場的第一步。本書針對面試中經常出現的問題,還有面試中涉及的各個方面,進行了詳細而完善的闡述,勢必幫讀者踏出面試成功的第一步。
為什麼要寫這樣一本書?
筆者曾經去過全球頂尖的IT公司面試,結果面試主考官僅僅是聊了聊家常,最後讓筆者寫一個.NET的連線資料庫字元串。不是吧,一個字元串?讀者也許以為很簡單,也許能馬上想到大概寫什麼。可你真的能寫出來嗎?你寫的一定是最優的數據連線字元串嗎?你寫的字元串能用最安全的方式訪問資料庫嗎?雖然資料庫連線字元串只有一行,通常我們都用.NET 配置工具自動完成,很好很方便,但結果呢,我們失去了思考的能力!
俗話說,機會總是垂青有準備的人。針對面試,我們需要準備什麼?
網上流傳著很多面試題,算法型的、操作型的,但是這些並不會出現在新的面試題中,因為沒有公司會用已經知道答案的操作題。而真正萬變不離其宗的就是原理,這也是很多讀者都忽略的地方,但卻是所有公司都最重視的地方,有關原理和基礎的面試題占面試比重的80%。很多.NET培訓速成班都是從實踐入手,讓初學者做項目來鍛鍊編碼能力!但是中國軟體需要的不是編碼機器,大企業需要的是真正動腦的人,而不是動手。
本書的目的即在幫助讀者高效地準備技術面試,強化基礎知識和.NET工作原理。本書整理了大量的實際面試題,並且給出分析和參考答案,幫助讀者複習已經掌握的知識點,並且彌補自己還不太了解的知識面。通過分析和學習這些面試題,讀者就可以做到有備無患,自信而從容地回答面試官提出的每一個問題。這些面試題看似簡單,卻是所有面試的人準備最不足的地方。
本書特色
相比同類圖書,本書具有以下明顯特色。
1.小知識,大道理
現在的程式設計師起步都比較高,動手能力較強,卻忽略了最最基礎的知識,而面試主要針對的其實不是動手能力,而是了解應聘者的基礎功底,往往很簡單的一個小問題就可以難倒應聘者,這個簡單問題也許只是解釋一下ASP NET的原理,可你真的能說出來嗎?本書從各個細微知識點入手,讓讀者盡覽面試中的常見知識問題,並通過知識點的引申,讓讀者明白面試題背後真正的考核點。
2.題型多,範圍廣
本書針對的面試題不再僅僅是一些算法,也不僅僅是一些代碼,而是從最最基礎的知識點出發,將常被開發人員忽略的技術、原理,以圖和小段代碼的形式進行講解,涉及的知識點包括普通窗體開發、網路開發、資料庫開發和最流行的XML開發。
3.代碼規範,思維明確
大部分的面試題除了基礎知識外,都是很簡單的代碼,一般在半頁到一頁之間,真正考核的不是要你開發一個模組,而是編碼的規範。重點考查的是一種編碼的結構和思維。本書提供的代碼嚴格按照大企業的編碼規範,採用最合理的結構形式。
4.提供完善的售後服務
本書提供了論壇,讀者可以在上面提問交流。另外,論壇上還有一些小的教程、視頻動畫和各種技術文章,可幫助你提高開發水平。對於不明白的面試題,也可以發布到論壇上,我們會在24小時內給出明確的答案。
本書組織結構
第一部分:應聘開發職位。簡要地分析了.NET技術職位招聘的大致情況和流程,提供應聘者需要注意的一些細節問題。
第二部分:基礎知識題。詳細覆蓋了關於.NET CRL機制、.NET和C#的語法、.NET常用類型和接口的使用、流的使用、記憶體機制等方面的面試題。
第三部分:高級特性題。覆蓋了關於.NET中的委託、反射、事件、特性等機制以及.NET框架下的多執行緒編程等方面的面試題。
第四部分:ASP NET和資料庫。覆蓋了和ASP NET套用開發、資料庫訪問等方面有關的面試題。
第五部分:XML和分散式套用。覆蓋了關於XML、Web Service、.NET Remoting等方面相關的面試題。
第六部分:常見算法代碼及單元測試。主要覆蓋了和算法代碼、單元測試有關的.NET面試題。
適合讀者群
本書非常適合以下人員閱讀:
剛畢業準備應聘.NET開發職位的應屆畢業生;
在準備換工作的有工作經驗的程式設計師;
希望通過分析、學習實際面試題來檢驗並且提高自身水平的程式設計師;
.NET開發愛好者;
其他編程愛好者。
本書作者
朱毅,男,出生於上海,於上海交通大學獲得電氣信息工程和計算機科學雙學士學位,於復旦大學獲得軟體工程碩士學位。先後任職於上海西門子移動通信有限公司和上海惠普有限公司,從事項目管理和系統開發工作。
本書作者平時除了編寫代碼之外,熱愛旅遊、游泳、電影、音樂,喜歡開源的項目,習慣於瀏覽各大技術論壇。
致謝
感謝王玥悅小姐,她在本書的寫作過程中提出了很多建議,其深厚的文學功底給了我巨大的幫助。
當然,也要感謝所有選擇本書的讀者們,希望本書能夠幫助各位讀者順利獲得期望的職位。
特別說明
本書所指的參考說明文檔均指微軟官方的MSDN幫助文檔。
目錄
第1章 應聘開發職位的技巧和禁忌 1
程式設計師在準備面試的過程中,有時會過分注重技術上的準備工作,事實上,一些非技術的準備工作也相當重要。掌握好應聘技術職位過程中的軟技巧、準備一份出色的簡歷、提高警惕避免在應聘中觸犯一些禁忌,可以大大地提高面試的成功率。在開始面試時,還要把握一些強勢的招聘網站,給自己一個展現自我的平台。本章從了解、準備、開始,層層漸進,讓讀者對整個程式設計師面試的過程有個全局性的掌握。
1.1 技術職位需要怎樣的人才——了解大
環境 1
1.1.1 對技術的執著和熱情 1
1.1.2 對編程始終抱有認真的態度 1
1.1.3 實事求是的態度和謙遜的品質 1
1.1.4 適合應聘公司的文化 1
1.2 一份出色的個人簡歷——面試準備 2
1.2.1 一份簡歷不宜超過一頁 2
1.2.2 永遠準備中文簡歷 2
1.2.3 不要在個人簡歷上註明希望薪水 2
1.2.4 簡歷模板 2
1.3 展現自我——開始發簡歷 3
1.3.1 應聘渠道 3
1.3.2 應聘流程 7
1.4 真正的面試——開始面試 8
1.4.1 筆試 8
1.4.2 面試 10
1.4.3 電話面試 10
1.4.4 網路考試 10
1.5 面試中的一些禁忌 11
1.6 小結 12
第2章 .NET框架基礎 13
本章覆蓋了.NET面試筆試中常見的.NET框架技術題。此類題目側重於考查應聘者對於.NET機制的深入了解,徹底理解.NET的運行機制,並且熟悉一個.NET系統常用的管理部署方法。
2.1 .NET基礎概念 13
2.1.1 什麼是CTS、CLS和CLR 13
2.1.2 開發和運行.NET程式需要的
最基本環境是什麼 15
2.1.3 .NET是否支持多程式語言開發 15
2.1.4 CLR技術和COM技術的比較 17
2.1.5 什麼是程式集和應用程式域 18
2.2 .NET運行機制 20
2.2.1 .NET程式被編譯成什麼形式的代碼 20
2.2.2 JIT是如何工作的 22
2.2.3 簡述程式集的載入機制 23
2.2.4 如何配置程式集的版本策略 25
2.3 生成、部署和管理 27
2.3.1 如何生成強簽名的程式集 27
2.3.2 如何把程式集放入GAC中 29
2.3.3 延遲簽名及其作用 30
2.3.4 程式集的版本分哪幾部分 32
2.4 名企面試真題 32
2.5 小結 33
第3章 .NET類型語法基礎 34
本章覆蓋了.NET面試筆試中最基礎的語法和類型題。縱觀.NET的面試題,此類題目涉及了最基礎的知識點,其難度也相對最小。但是應聘者如果對此類的面試題回答得不正確或者不完整,將會給面試官留下技術水平較差的印象,建議讀者對本章的題目做到深刻理解和掌握。
3.1 基礎類型和語法 34
3.1.1 .NET中所有內建類型的基類是什麼 34
3.1.2 System.Object中包含哪些方法,
哪些是虛方法 35
3.1.3 值類型和引用類型的區別 37
3.1.4 簡述裝箱和拆箱原理 40
3.1.5 C#中是否有全局變數 43
3.1.6 struct和class的區別,
struct適用哪些場合 43
3.1.7 類型的初始化器何時被調用 44
3.1.8 C#中方法的參數可以有哪幾種
傳遞方式 47
3.1.9 C#中string和String有什麼區別 50
3.1.10 .NET支持哪幾種可訪問性級別,
C#實現了其中的哪幾種 50
3.1.11 簡述屬性的特點及屬性和
方法的異同 51
3.1.12 簡述C#中的淺複製和深複製 54
3.1.13 簡述C#中的循環語法和各自的特點 57
3.1.14 C#中的using語句有什麼作用 60
3.2 記憶體管理和垃圾回收 62
3.2.1 簡述.NET中堆疊和堆的特點和差異 62
3.2.2 執行string abc="aaa"+"bbb"+
"ccc"共分配了多少記憶體 64
3.2.3 .NET中GC的運行機制 66
3.2.4 Dispose方法和Finalize方法在
何時被調用 67
3.2.5 GC中代(Generation)是什麼,
一共分幾代 70
3.2.6 GC機制中如何判斷一個對象
是否仍在被使用 71
3.2.7 .NET的託管堆中是否可能出現
記憶體泄漏現象 72
3.3 面向對象的實現 75
3.3.1 C#中類可以有多個父類、
可以實現多個接口嗎 75
3.3.2 簡述C#中重寫、重載和隱藏的概念 76
3.3.3 為什麼在構造方法中調用虛方法
會導致問題 78
3.3.4 在C#中如何聲明一個類不能被繼承 82
3.4 異常的處理 82
3.4.1 如何針對不同的異常進行捕捉 82
3.4.2 如何使用Conditional特性 84
3.4.3 如何避免類型轉換時的異常 86
3.5 名企面試真題 88
3.6 小結 89
第4章 字元串、集合和流的使用 90
字元串、集合和流在程式中處理數據時經常被用到,這些代碼的編寫將直接影響到系統的正確性和效率。本章將包含關於字元串、集合和流的常見面試題,並且通過分析這些題目和知識點,幫助讀者梳理這些方面的知識。
4.1 字元串處理 90
4.1.1 System.String是值類型還是引用類型 90
4.1.2 StringBuilder類型有何作用 91
4.1.3 如何在String和Byte[]對象之間
進行轉換 92
4.1.4 簡述BASE64編碼的作用以及
C#中對其的支持 94
4.1.5 SecureString的實例如何
被分配和釋放 96
4.1.6 什麼是字元串池機制 98
4.2 常用集合和泛型 99
4.2.1 Int[]是引用類型還是值類型 99
4.2.2 數組之間如何進行轉換 100
4.2.3 解釋泛型的基本原理 102
4.2.4 什麼是泛型的主要約束和次要約束 104
4.2.5 .NET中是否可用
標準模板庫(STL) 105
4.3 流和序列化 106
4.3.1 什麼是流,.NET中有
哪些常見的流 106
4.3.2 如何使用壓縮流 109
4.3.3 Serializable特性有何作用 111
4.3.4 .NET提供了哪幾種可進行
序列化操作的類型 113
4.3.5 如何自定義序列化和反序
列化的過程 116
4.4 名企面試真題 119
4.5 小結 119
第5章 常用類和接口 120
.NET除了提供運行引擎之外,還提供了豐富的內建類型。理解這些類型的作用和機制,能夠幫助程式設計師減少代碼工作,編寫高效簡潔的代碼。而有時候誤用類型,則會導致性能的降低,更嚴重時則會為系統帶了潛伏的bug。本章將介紹一些經常出現在.NET面試中的類型和接口。
5.1 類型的基類System.Object 120
5.1.1 是否存在不繼承自System.Object
類型的類 120
5.1.2 在System.Object中定義的
三個比較方法有何異同 122
5.1.3 如何重寫GetHashCode方法 125
5.2 時間的操作System.DateTime 127
5.2.1 DateTime如何存儲時間 127
5.2.2 如何在DateTime對象和
字元串對象之間進行轉換 127
5.2.3 什麼是UTC時間,如何轉換到
UTC時間 130
5.3 IFormattable和IformatProvider
的使用 131
5.3.1 如何使用IFormattable接口
實現格式化輸出 131
5.3.2 如何告訴類型格式化輸出的方式 133
5.4 管理檔案和資料夾的類型 135
5.4.1 如何操作檔案和資料夾 135
5.4.2 如何實現檔案和資料夾的
監控功能 139
5.5 .NET中的定時器 141
5.5.1 .NET提供了哪幾個定時器類型 141
5.5.2 .NET的內建定時器類型
是否會發生回調方法重入 146
5.6 名企面試真題 151
5.7 小結 151
第6章 .NET中的高級特性 152
本章的內容覆蓋了諸如委託、事件、反射和特性等.NET框架中的高級特性。對這些特性的掌握和成熟運用,往往成為.NET程式設計師從入門級進階到中級的判斷標準。也正因為如此,此類題目在.NET技術筆試、面試中被大量採用。讀者在閱讀本章時,應力求做到知其然更知其所以然,充分理解各種特性在.NET框架下是如何實現的,這樣的設計如何提高了程式的靈活性和可擴展性。
6.1 委託 152
6.1.1 請解釋委託的基本原理 152
6.1.2 委託回調靜態方法和實例方法
有何區別 154
6.1.3 什麼是鏈式委託 154
6.1.4 鏈式委託的執行順序是怎么樣的 156
6.1.5 可否定義擁有返回值的
方法的委託鏈 157
6.1.6 委託通常可以套用在哪些場合 159
6.2 事件 165
6.2.1 請解釋事件的基本使用方法 165
6.2.2 事件和委託有何聯繫 167
6.2.3 如何設計一個帶有很多事件的類型 169
6.2.4 用代碼表示如下情景:貓叫、
老鼠逃跑、主人驚醒 173
6.3 反射 175
6.3.1 請解釋反射的基本原理和其
實現的基石 176
6.3.2 .NET提供了哪些類型來實現反射 179
6.3.3 如何實現動態地發射程式集 184
6.3.4 如何利用反射來實現工廠模式 188
6.3.5 如何以較小的記憶體代價保存
Type、Field和Method信息 194
6.4 特性 196
6.4.1 什麼是特性,如何自定義一個特性 196
6.4.2 .NET中特性可以在哪些元素上使用 198
6.4.3 有哪幾種方法可以獲知一個元素
是否申明某個特性 200
6.4.4 一個元素是否可以重複申明
同一個特性 202
6.5 名企面試真題 204
6.6 小結 204
第7章 .NET多執行緒編程 205
多執行緒編程是每個技術框架下都需要面對的問題,在多CPU、多核的硬體架構逐漸普及的今天,多執行緒編程也漸漸變得更加重要。本章將集中覆蓋關於.NET中多執行緒編程的面試題。
7.1 多執行緒編程的基本概念 205
7.1.1 請解釋作業系統層面上的
執行緒和進程 205
7.1.2 多執行緒程式在作業系統里是
並行執行的嗎 206
7.1.3 什麼是纖程 207
7.2 .NET中的多執行緒編程 208
7.2.1 如何在.NET程式中手動
控制多個執行緒 208
7.2.2 如何使用.NET的執行緒池 212
7.2.3 如何查看和設定執行緒池的上下限 215
7.2.4 如何定義執行緒獨享的全局數據 217
7.2.5 如何使用異步模式讀取一個檔案 221
7.2.6 如何阻止執行緒執行上下文的傳遞 223
7.3 多執行緒程式的執行緒同步 227
7.3.1 什麼是同步塊和同步塊索引 227
7.3.2 C#中的lock關鍵字有何作用 229
7.3.3 可否使用值類型對象來
實現執行緒同步 232
7.3.4 可否對引用類型對象自身進行同步 233
7.3.5 什麼是互斥體,Mutex類型和
Monitor類型的功能有何區別 235
7.4 名企面試真題 238
7.5 小結 238
第8章 ASP NET套用開發 239
ASP NET是微軟公司提供的編寫動態網站的技術框架,其特點是基於.NET框架基礎,所有ASP NET程式都可以使用針對.NET的語言編寫。在微軟公司的Visual Studio開發平台中,實現了拖放控制項等便捷的功能,使得ASP NET應用程式的開發效率得到了較大的提高,近些年來ASP NET技術逐漸成為網站開發的主流技術之一,本章將覆蓋一些常見的關於ASP NET開發的面試題。
8.1 ASP NET套用開發基礎 239
8.1.1 請解釋ASP NET以什麼形式運行 239
8.1.2 常見的HTTP Code有哪些 242
8.1.3 GET請求和POST請求有何區別 245
8.1.4 介紹ASP NET的頁面生存周期 247
8.2 控制項和頁面 249
8.2.1 什麼是靜態頁面,什麼是
動態頁面 250
8.2.2 請簡述ViewState的功能和
實現機制 251
8.2.3 Session有哪幾種存儲方式,
之間有何區別,如何進行設定 255
8.2.4 如何嵌套使用GridView控制項 259
8.2.5 列舉幾種實現頁面跳轉的方法,
並說明其實現機制 263
8.2.6 請解釋<%# Eval("source")"%>的
功能和實現機制 270
8.2.7 ObjectDataSource控制項有何作用 273
8.3 驗證和安全 277
8.3.1 如何使用正則表達式來驗證一個
上海市電話號碼 277
8.3.2 介紹ASP NET驗證控制項的功能和
使用方法 280
8.3.3 如何防止SQL注入式攻擊 287
8.4 名企面試真題 289
8.5 小結 289
第9章 .NET中的資料庫開發 290
大部分系統都會包含資料庫套用。資料庫套用設計往往成為系統設計中最重要的組成之一,這其中不止包括資料庫的架構、庫結構的設計,也包括了程式訪問資料庫策略的設計。在.NET的程式開發中,ADO NET已經成為訪問資料庫最主要的組件框架。本章將覆蓋和資料庫訪問及ADO NET有關的常見面試題,具體會覆蓋ADO NET基本概念、資料庫的連結、資料庫讀寫等主題。
9.1 ADO NET和資料庫程式基礎 290
9.1.1 什麼是關係型資料庫 290
9.1.2 如何通過SQL語句來
實現行列轉換 291
9.1.3 ADO NET支持哪幾種數據源 293
9.2 ADO NET和資料庫的連線 295
9.2.1 請簡要敘述資料庫連線池的機制 295
9.2.2 如何提高連線池內連線的重用率 298
9.2.3 一個連線字元串可以包含哪些屬性 300
9.2.4 CommandBehavior.CloseConnection
有何作用 302
9.3 使用ADO NET讀寫資料庫 305
9.3.1 ADO NET支持哪兩種方式來訪問
關係資料庫 305
9.3.2 什麼是強類型的DataSet 309
9.3.3 請解釋SqlDataAdapter的
基本工作機制 312
9.3.4 如何自動生成SqlDataAdapter的
更新命令 316
9.3.5 如何實現批量更新的功能 319
9.4 名企面試真題 321
9.5 小結 321
第10章 XML的套用和處理 322
XML可算是近10年來最炙手可熱的技術之一,由於其跨平台的特性,很多技術套用都選擇基於XML來進行發展。在.NET中,對XML的支持和套用隨處可見。例如配置檔案的格式、數據結構的表示、Web Service套用等,都是以XML語法為基礎的。本章將詳細覆蓋常見的關於XML本身及其在.NET中套用的面試題。
10.1 XML的基本特性 322
10.1.1 什麼是XML 322
10.1.2 簡述XML的常用領域及其優勢 323
10.1.3 XML中<![CDATA[ ]]>
標籤的作用 324
10.1.4 XML規範是否允許空的屬性值 325
10.1.5 XML中如何處理諸如
“<”的字元 326
10.1.6 XML中的命名空間如何使用 328
10.2 使用.NET組件讀寫XML 330
10.2.1 .NET中操作XML的
基本類型有哪些 330
10.2.2 如何使用XmlDocument類型
操作XML文檔的節點和屬性 334
10.2.3 如何使用XPath來指向帶有
屬性的節點 337
10.2.4 .NET中如何驗證一個
XML文檔的格式 338
10.2.5 .NET中XML文檔和關係
模式如何轉換 340
10.3 利用XSLT處理XML文檔 344
10.3.1 什麼是XSLT,XSLT有何作用 344
10.3.2 如何使用XSLT中的模板 346
10.3.3 如何在XSLT文檔中調用
其他XSLT文檔 349
10.3.4 如何在代碼中使用XSLT文檔 351
10.4 名企面試真題 353
10.5 小結 353
第11章 Web Service的開發與套用 354
Web Service是一種網路服務,形式非常類似於當前智慧型手機上的套用。通過通用的規範,Web Service技術允許使用者訪問網路上每一個Web Service所提供的服務。在網路快速發展的今天,這種基於網路的分散式服務已經被廣泛地套用。本章將討論關於.NET中如何套用Web Service的面試題。
11.1 SOAP和Web Service的基礎概念 354
11.1.1 請簡述SOAP協定 354
11.1.2 什麼是WSDL,它有何作用 356
11.1.3 Web Service中如何處理附屬檔案 357
11.2 使用.NET開發Web Service 360
11.2.1 如何在.NET中創建Web Service 360
11.2.2 WebMethod特性包含哪些屬性,
各有何用處 363
11.2.3 如何生成Web Service代理類型 367
11.2.4 請簡述.NET中Web Service的
異常機制 368
11.3 Web Service的安全機制 371
11.3.1 請簡要介紹WS-Security的
簽名機制 371
11.3.2 WS-Security規範申明了
哪幾種身份驗證的方法 373
11.4 名企面試真題 375
11.5 小結 375
第12章 .NET Remoting分散式套用開發 376
在企業級套用開發中,分散式開發占據了越來越重要的地位。.NET Remoting是一種可擴展性很高的分散式開發技術,相對於DCOM、CORBA、RMI等分散式開發技術而言,.NET Remoting擁有著眾多獨特的優勢。.NET Remoting是一個龐大的技術話題,如果詳細展開的話可能要占據一本書的篇幅。本章主要針對那些經常出現在.NET面試中的、與Remoting基礎相關的面試題。
12.1 .NET Remoting框架基礎 376
12.1.1 請簡要介紹.NET Remoting的
運行機制 376
12.1.2 請列舉.NET Remoting機制中
有哪些組件可以擴展替換 379
12.1.3 請簡述.NET Remoting
生存周期機制 384
12.2 使用.NET Remoting進行
分散式套用開發 387
12.2.1 請介紹服務端激活模式和
客戶端激活模式的區別 387
12.2.2 請簡述Remoting中有哪幾種
遠程調用方式 390
12.2.3 Remoting機制中如何處理以
ObjRef為參數的方法調用 393
12.2.4 請簡述Remoting中配置
檔案的使用 397
12.2.5 如何在客戶端和伺服器端共享
遠程對象類型 400
12.3 名企面試真題 404
12.4 小結 404
第13章 代碼和算法 405
無論是面試還是筆試,算法和代碼的問題都是必不可少的,其區別僅在於筆試中更側重於應聘者書寫代碼的能力,而面試中則更注重於應聘者的設計能力和算法思路。本章著重覆蓋了一些在.NET面試中經常出現的和代碼、算法有關的面試題,並且給出了解答思路和實現示例。
13.1 基礎算法題 405
13.1.1 請實現一個快速排序算法 405
13.1.2 請實現一個二分查找算法 406
13.1.3 請實現一棵二叉樹的中序、
後序遍歷 408
13.1.4 請寫出一個奇偶分割算法 413
13.1.5 請實現一個簡單的最短路徑算法 414
13.2 程式設計題 423
13.2.1 請編程實現斐波拉契數列問題 423
13.2.2 請設計視窗程式演示八皇后問題 425
13.3 名企面試真題 432
13.4 小結 432
第14章 .NET中的單元測試 433
單元測試是軟體開發中必不可少的一個環節,單元測試的優劣直接影響到集成測試、系統測試的效果,甚至會影響到最終產品的質量。大多數開發團隊對單元測試非常重視,並且要求程式設計師掌握相應的知識。本章將覆蓋在.NET面試中經常出現的關於單元測試的面試題。
14.1 單元測試基礎概念 433
14.1.1 請簡述單元測試的作用和其優點 433
14.1.2 請舉例說明TDD開發方式的流程 434
14.1.3 請編寫實現階乘功能模組的
測試用例 437
14.2 使用NUNIT進行單元測試 439
14.2.1 如何使用NUNIT來進行單元測試 439
14.2.2 如何對NUNIT的測試用
例進行分類 442
14.2.3 請解釋SetUp、TearDown、
TestFixtureSetUp和
TestFixtureTearDown 446
14.3 名企面試真題 448
14.4 小結 448