當前位置:編程學習大全網 - 編程語言 - 進入IT企業必讀的200個 .NET面試題的目 錄

進入IT企業必讀的200個 .NET面試題的目 錄

第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

  • 上一篇:筆記本電腦開不開機壹直黑屏的解決方法
  • 下一篇:在VC++6.0中如何用Mapx進行GIS系統的開發,或者給壹個小的項目源代碼也行呀?!
  • copyright 2024編程學習大全網