轉載別人的 只是用作學習javascript
一.選擇,填空題 1. 在 ADO.NET中,對於 Command對象的 ExecuteNonQuery() 方法和 ExecuteReader() 方法, 下面敘述錯誤的是( C)。 a) insert 、update 、delete 等操做的 Sql 語句主要用 ExecuteNonQuery() 方法來執行; b) ExecuteNonQuery() 方法返回執行 Sql 語句所影響的行數。 c) Select 操做的 Sql 語句只能由 ExecuteReader() 方法來執行; ~ d) ExecuteReader() 方法返回一個 DataReder 對象;
2. 面向對象的語言具備 __繼承性 _性、 _封裝性 _性、 _多態性 性。
3. 能 用 foreach 遍 歷 訪 問 的 對 象 需 要 實 現 ________________ 接 口 或 聲 明 ________________方法的類型。 (@) 答: IEnumerable 、 GetEnumerator()
4. 在C#中, 表示一個字符串的變量應使用如下哪條語句定義? ( B ) A. CString str;
B. string str;
C. Dim str as string
D. char * str;
5. 在C#編制的財務程序中 , 須要建立一個存儲流動資金金額的臨時變量 , 則應使用下列哪 條語句? ( A )
A. decimal theMoney;
B. int theMoney;
C. string theMoney;
D. Dim theMoney as double
6. C#中,新建一字符串變量 str, 並將字符串」 Tom's Living Room 」保存到串中 , 則應該 使用下列哪條語句? ( B) A. string str = 「Tom\'s Living Room 」; B. string str = 「Tom's Living Room 」; C. string str( 「Tom's Living Room 」); D. string str( 「Tom」s Living Room 」);
7. 應用 ADO.NET 訪問數據時 ,Connection 對象的鏈接字符串中 Initial Catalog 子串的 含義是 ( A ) A. Connection 對象鏈接到的數據庫的名稱 B. Connection 對象的身份驗證信息 C. Connection 對象的最大鏈接時間 D. Connection 對象使用的緩存大小
8. 使用 Visual Studio .NET 的」新建 C# 項目」建立一個名爲」 SimpleForm 」的 Windows 表單應用程序 , 則在生成 _______文件中可設置該程序集的 Copyright 、Trademark 等屬 性信息 . ( D )
2
A. Form1.resx
B. SimpleForm.sln
C. SimpleForm.csproj
D. AssemblyInfo.cs
9. C#程序中 , 爲使變量 myForm 引用的窗體對象顯示爲對話框 , 必須: ( C ) A. 使用 myForm.ShowDailog 方法顯示對話框 B. 將myForm 對象的 isDialog 屬性設爲 true C. 將myForm 對象的 FormBorderStyle 枚舉屬性設置爲 FixedDialog D. 將變量 myForm 改成引用 System.Windows.Dialog 類的對象
10. 下列哪些語言能夠用來開發 XML Web Service? ( A,B,C,D ) A. C
B. C++
C. Java
D. C#
11. Web 表單中 , 按鈕的默認事件是 ( A ) A. Click 事件 B. Load 事件 C. Init 事件 D. Command 事件
12. 關於 ASP.NET 窗體應用程序 , 下列說法哪些是正確的? ( D ) A. Web 窗體是在瀏覽器中進行解釋執行的 B. Web 窗體程序中腳本和代碼必須嚴格分開 C. Web 窗體程序產生的 HTML 頁面只能運行於 IE 瀏覽器 D. Web 窗體程序的代碼可使用任何一種 .NET 兼容的編程語言編寫
13. 關於結構類型 ,下列說法哪些是正確的? ( A ) A. 結構是值類型 B. 結構中不容許定義帶參數的實例構造函數 ; C. 結構中不容許定義析構函數 D. 結構中能夠定義成員方法 , 可是方法內不能使用 this 指針 E. 不能使用 new 關鍵字建立結構類型的實例
14. 關於線程和進程 , 下列說法哪些是正確的? ( A D ) A. 線程是操做系統分配處理器時間的基本單位 ; B. 進程是操做系統分配處理器時間的基本單位 ; C. 一個線程能夠屬於多個進程 ; D. 一個進程能夠有多個線程 ;
15. 爲從某個網站訪問 xml 信息, 應使用 ( _ )類的對象分析下載返回的 xml 文檔 ( C D ) A StreamReader
3
B TextReader
C XmlReader
D XmlTextReader
16. 面向對象編程中的」繼承」的概念是指 ( B) A 派生類對象能夠不受限制地訪問全部的基類對象 B 派生自同一個基類的不一樣類的對象具備一些共同特徵 C 對象之間經過消息進行交互 D 對象的內部細節被隱藏
17. 如下敘述正確的是( D ) 。@ A. 一條表達式中能夠同時出現浮點數類型和 decimal 類型 B. 類能夠繼承,而且能夠多重繼承 C. int[,] b=new int[4,5] // 建立了一個二維數組,第一維長爲 4,第二維長爲 5 D. int x=23; object o=x; int y=(int) o; // 實現了一次裝箱操做
18. 如下有關結構類型和枚舉類型的敘述錯誤的是( C )。 A. 結構類型和枚舉類型都是複合類型 B. 結構類型只能是簡單值類型的組合 C. 枚舉類型要求成員只能是整數類型 D. 枚舉類型的變量在某一時刻只
19. 接口和類最主要的區別在於( D )。 A.類能夠重載而接口不能夠 B.類不能夠重載而接口能夠 C.類能夠多重重載而接口不能夠 D.類不能夠多重重載而接口能夠
20. 關於靜態域成員與非靜態域成員,如下說法正確的是( C )。 A. 一個類的全部對象共享非靜態域成員 B. 一個類的一個對象分別擁有不一樣的非靜態域成員的實例 C. 靜態域成員都能在不生成實例的狀況下直接被使用 D. 非靜態域成員都能
21. 關於重載,如下敘述錯誤的是( C,D)。 A. 重載是指在類的內部存在若干個方法名稱一致可是參數列表不一樣的方法 B. 方法重載是指建立多個名稱相同的方法,其中每一個方法都在某些方面具備惟一性,以便 編譯器可以正確區別它們 C. 重載構造函數主要是爲了在建立對象的同時進行賦值 D. 方法的重載容許兩個方法的名稱和參數列表相同,而返回類型不一樣
22. 下面有關 C#中方法的參數描述正確的是( B )。 A. 利用值類型參數調用方法時,對形參的修改會反映到實參上去 B. 輸出型參數的實參在傳遞給形參前,不須要明確賦值
4
C. 引用型參數不另外開闢新的內存區域,這一點是它與輸出型參數的不一樣之處 D. 數組型參數能夠是任何類型的數組
23. 下面是一個派生類的定義語句: public class car: vehicle { private string model= 」L」;
private int wheelNo=4;} 請指出針對該定義的正確的說法( C )。 A. vehicle 類是 car 類的一個特例,於是它能夠被繼承 B. car 類是父類, vehicle 類是子類 C. 在 car 類中定義的成員 model 和 wheelNo 會刪除 vehicle 類中同名的成員 D. car 類是 vehicle 類的一個特例,它能夠繼承 vehicle 類中除構造函數和析構函
24. (D )關鍵字能夠用來訪問當前對象的基類對象。 A.object B .this C.as D .base
25. 重載是( B )的形式之一。 A.接口 B .多態 C.繼承 D .類
26. x 的初值爲 24,則表達式 x+=x--+=x%=17 運算的結果值爲( D )。 A. 28 B .27 C.26 D .錯誤的表達式
27. 下面是幾條定義初始化二維數組的語句,指出其中正確的是( D )。 A.int array2[ ][ ]=new int[3,2]; B.int array2[,]=new int[3,2]; C.int[ ][ ] array2=new int[3,2]; D.int[, ] array2=new int[3,2];
28. 一個初始化語句: enum monthes{January,February=3,March=5,April=7,May,June}, 則此時 May的值爲(C )。 A.4 B .5 C .8 D .9
29. 在 Asp.net 中全部的自定義用戶控件都必須繼承自 ________? 答: Control 。 30. 在.Net 中全部可序列化的類都被標記爲 _____? 答: [serializable] 31. 在.Net 託管代碼中咱們不用擔憂內存漏洞,這是由於有了 ______? 答: GC。 32. 在.Net 中,類 System.Web.UI.Page 能夠被繼承麼? 答:能夠。 33. 聲明靜態變量的關鍵字是( static ),聲明常量的關鍵字是( const ) 34. 在流程控制中 CONTINUE的做用( 跳出當前循環繼續下一次循環 )
5
35. 軟件工程的三大文檔( 須要分析說明書 )(概要設計說明書 )(詳細設計說明書 )。 36. B/S 通 常 使 用 的 結 構 設 計 模 型 分 爲 ( 模 型 )( 視 圖 )( 控 制 器 )。( MVC 經 典 的 Web/Business/DataAccess ) 37. XML 的全稱是( Extensible Markup Language 」可擴展標記語言」 ),提供了快速和有 效地讀寫 XML的方式的類分別是( XMLReader)(XMLWriter ) 38. C#中全部的類型實質上都是從( Object )類派生而來的。 39. NET運行庫支持被稱爲( 委託 )的引用類型,其做用相似於 C++中函數指針的用途。 40. B/S 一般使用的結構設計模型分爲( 模型 )(視圖 )(控制)?* 41. 類的三大特性是( 封裝 )(繼承 )(多態 ) 42. .NET運行庫支持被稱爲( 委託 )的引用類型,其做用相似於 C++中函數指針的用途 43. C#中處理內存管理功能的是( 託管代碼 GC(垃圾回收 )) 44. 在 C#中用於顯式地將一個值或引用轉換爲另外一種不一樣的類型稱爲( 拆箱) 45. 在 ADO。NET中,command對象是用(ExcuteNonQuery ) (ExcuteScalar ) (ExcuteDataReader ) 方法執行命令
6
二.簡答題 1. 簡述 private 、 protected 、 public 、 internal 修飾符的訪問權限。 答:private : 私有成員 , 在類的內部才能夠訪問。 protected : 保護成員,該類內部和繼承類中能夠訪問。 public : 公共成員,徹底公開,沒有訪問限制。 internal: 在同一命名空間內能夠訪問。
2. C# 中, string str = null 與 string str ="" ,請儘可能用文字說明區別。 答: string str ="" 分配空間而 string str = null 不分配空間。
3. 用 sealed 修飾的類有什麼特色? 答:不可被繼承
?*4. 請敘述 const 與 readonly 的區別。 e) 每個 class 至多隻能夠定義一個 static 構造函數,而且不容許增長訪問級別關 鍵字,參數列必須爲空。 爲了避免違背編碼規則, 一般把 static 數據成員聲明爲 private , 而後經過 statci property 提供讀寫訪問。 const 關鍵字用於修改字段或局部變量的聲明。它指定字段或 局部變量的值不能被修改。常數聲明引入給定類型的一個或多個常數。 const 數據成員的聲明式必須包含初值,且初值必須是一個常 量表達式。由於它是在編譯時就須要徹底評估。 const 成員可使用另外一個 const 成員來初始化,前提是二者 之間沒有循環依賴。 readonly 在運行期評估賦值,使咱們得以在確保「只讀訪問」 的前提下,把 object 的初始化動做推遲到運行期進行。 readonly 關鍵字與 const 關鍵字不一樣: const 字段只能在 該字段的聲明中初始化。 readonly 字段能夠在聲明或構造函數中初始化。所以, 根據所使用的構造函數, readonly 字段可能具備不一樣的值。另外, const 字段是 編譯時常數,而 readonly 字段可用於運行時常數。 readonly 只能在聲明時或者構造函數裏面初始化,而且不能在 static 修飾 的構造函數裏面。
f) 5. 簡述 private 、 protected 、 public 、 internal 修飾符的訪問權限。 private : 私有成員 , 在類的內部才能夠訪問。 protected : 保護成員,該類內部和繼承類中能夠訪問。 public : 公共成員,徹底公開,沒有訪問限制。 internal: 在同一命名空間內能夠訪問。
?*6. 請說明在 .net 中經常使用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。 session(viewstate) 簡單,但易丟失 @ application 全局 cookie 簡單,但可能不支持,可能被僞造 input ttype="hidden" 簡單,可能被僞造
7
url 參數簡單,顯示於地址欄,長度有限 數據庫穩定,安全,但性能相對弱 7. 概述反射和序列化 答: 反射 : 程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、 模塊和類型的對象。 您可使用反射動態地建立類型的實例, 將類型綁定到現有對象, 或從 現有對象中獲取類型。而後,能夠調用類型的方法或訪問其字段和屬性 序列化 : 序列化是將對象轉換爲容易傳輸的格式的過程。例如,能夠序列化一個對象,而後 使用 HTTP 經過 Internet 在客戶端和服務器之間傳輸該對象。 在另外一端, 反序列化將從該 流從新構造對象。
8. 什麼是 SOAP,有哪些應用。 答: SOAP (Simple Object Access Protocol )簡單對象訪問協議( SOAP)是一種 輕量的、 簡單的、 基於 XML 的協議, 它被設計成在 WEB 上交換結構化的和固化的 信息。 SOAP 能夠和現存的許多因特網協議和格式結合使用, 包括超文本傳輸協議 ( HTTP),簡單郵件傳輸協議( SMTP ),多用途網際郵件擴充協議( MIME)。它還支 持從消息系統到遠程過程調用( RPC)等大量的應用程序。 Web service 就是一個 應用程序,它向外界暴露出一個可以經過 Web進行調用的 API。這就是說,你可以 用編程的方法經過 Web來調用這個應用程序 .
9.ASP。NET中共有幾種類型的控件?各有什麼區別? 答: Html 控件傳統的 html 標記 Web 控件能夠回傳數據,事件驅動 自定義控件在原有控件的基礎上增長功能 複合控件多個子控件複合成一個新的控件
10. 什麼狀況用 HTML控件,什麼狀況用 WEB控件,並比較二者差異 答: 客戶端表現用 html 控件,若是想和 server 端交互,那麼加上 runat=server ,它就 成了服務器端控件, 但它沒有 web控件的不少方法和屬性, 若是你須要用到, 那麼仍是 用 webControls.
11. 用.net 作 B/S 結構的系統,您是用幾層結構來開發,每一層之間的關係以及爲何要這 樣分層? 答:通常爲 3 層 數據訪問層,業務層,表示層。 數據訪問層對數據庫進行增刪查改。 業務層通常分爲二層, 業務表觀層實現與表示層的溝通, 業務規則層實現用戶密碼的安全等。 表示層爲了與用戶交互例如用戶添加表單。 優勢: 分工明確,條理清晰,易於調試,並且具備可擴展性。 缺點: 增長成本。
12. 什麼是 XML? 答: XML便可擴展標記語言。 eXtensible Markup Language. 標記是指計算機所能理解的信 息符號,經過此種標記,計算機之間能夠處理包含各類信息的文章等。如何定義這些標記, 便可以選擇國際通用的標記語言,好比 HTML,也可使用象 XML這樣由相關人士自由決定
8
的標記語言,這就是語言的可擴展性。 XML是從 SGML中簡化修改出來的。它主要用到的有 XML、XSL和 XPath 等。 13. 什麼是 Web Service ?UDDI?@ 答: Web Service 即是基於網絡的、分佈式的模塊化組件,它執行特定的任務,遵照具體的 技術規範,這些規範使得 Web Service 能與其餘兼容的組件進行互操做。 UDDI 的目的是爲電子商務創建標準; UDDI是一套基於 Web的、分佈式的、爲 Web Service 提供的、信息註冊中心的實現標準規範, 同時也包含一組使企業能將自身提供的 Web Service 註冊,以使別的企業可以發現的訪問協議的實現標準
14.WEB控件能夠激發服務端事件, 請談談服務端事件是怎麼發生並解釋其原理?自動傳回
是什麼?爲何要使用自動傳回 。
在 web控件發生事件時,客戶端採用提交的形式將數據交回服務端,服務端先調用 Pa ge_Load 事件, 而後根據傳回的狀態信息自動調用服務端事件自動傳回是當咱們在點擊 客戶端控件時,採用提交表單的形式將數據直接傳回到務端
只有經過自動傳回才能實現服務端事件的機制,若是沒有自動回傳機制就只能調用客 戶端事件,而不能調用服務端事件
16. 請簡述 DataReader 與 DataSet 的異與同。
17.PDB 是什麼東西 ? 在調試中它應該放在哪裏?
答:PDB是用於保存調試和項目狀態信息的文件,在 debug 的時候將產生 pdb 文件,調 試的時候應該放在和對應應用程序集相同目錄。
18. 簡述 ajax 的原理。 答: ajax 簡單的講就是客戶端經過 javascript 腳本獲取服務器端的文本,經過解 析返回值,更新部分的網頁內容。
19. 描述線程與進程的區別?
答: 線程 (Thread) 與進程(Process )兩者都定義了某種邊界, 不一樣的是進程定義的 是應用程序與應用程序之間的邊界, 不一樣的進程之間不能共享代碼和數據空間, 而 線程定義的是代碼執行堆棧和執行上下文的邊界。一個進程能夠包括若干個線程, 同時建立多個線程來完成某項任務, 即是多線程。 而同一進程中的不一樣線程共享代 碼和數據空間。 用一個比喻來講,若是一個家庭表明一個進程,在家庭內部,各個 成員就是線程, 家庭中的每一個成員都有義務對家庭的財富進行積累, 同時也有權利 對家庭財富進行消費, 當面對一個任務的時候, 家庭也能夠派出幾個成員來協同完 成,而家庭以外的人則沒有辦法直接消費不屬於本身家庭的財產。
20. 什麼是 Windows服務,它的生命週期與標準的 EXE程序有什麼不一樣
答: Windows服務是運行在 windows 後臺指定用戶下(默認 System)的應用程序, 它沒有標準的 UI 界面,想比標準的 EXE程序, Windows 服務是在服務開始的時候 建立,而在服務結束的時候銷燬, 並且能夠設置服務是否與操做系統一塊兒啓動, 一
9
起關閉。它支持三種方式:1)自動方式 2 )手動方式 3)禁用 。自動方式的 時候, windows 服務將在 OS啓動後自動啓動運行,而手動方式則必須手工啓動服 務,禁用的狀況下服務將不能被啓動。 另外標準的 EXE默認使用的當前登陸的用戶, 而 windows 服務則默認使用 System 用戶,這在對系統資源訪問的時候特別須要注 意。
21. 什麼是強類型,什麼是弱類型?哪一種更好些?爲何 ?
答: 強類型是在編譯的時候就肯定類型的數據,在執行時類型不能更改,而弱類型 在執行的時候纔會肯定類型。沒有好很差,兩者各有好處,強類型安全,由於它事 先已經肯定好了, 並且效率高。 通常用於編譯型編程語言, 如 c++,java,c#,pascal 等, 弱類型相比而言不安全,在運行的時候容易出現錯誤,但它靈活,多用於解釋 型編程語言,如 javascript,vb 等 .
22. 什麼是 GAC?它解決了什麼問題 ?
答: Gloal Assembly Cache ,全局應用程序集緩存。它解決了幾個程序共享某一個 程序集的問題。 沒必要再將那個被共享的程序集拷貝到應用程序目錄了, 其實這道理 很簡單, .net 應用程序在加載的時候,會首先查看全局應用程序集緩存,若是有 就能夠直接使用,沒有再到應用程序目錄進行查找。
23. 闡述面向接口、面向對象、面向方面編程的區別
答: 面向接口更關注的是概念,它的原則是先定義好行爲規範,再根據行爲規範創 建實現, 嚴格的來講, 面向接口應該是面向對象中的一部分吧, 由於面向對象也強 調的是本末倒置原則, 也就是實現依賴於抽象, 而抽象不依賴於具體實現, 更具比 較的應該是面向接口與面向抽象對象, 個人體會是面向接口更加靈活, 但實現時候, 稍微有些代碼冗餘,而面向抽象能夠結合面向接口,先定義接口,再定義抽象類, 在抽象類中處理一些公共邏輯, 再實現具體實現類。 面向對象是對複雜問題的分解。 面向方面的編程是一種新概念, 它解決了不少面向對象沒法解決的問題, 好比面向 對象技術只能對業務相關的代碼模塊化, 而沒法對和業務無關的代碼模塊化。 而面 向方面正是解決這一問題的方案,它的關鍵思想是 " 將應用程序中的商業邏輯與對 其提供支持的通用服務進行分離 " 。
24. 簡述用 repeater 實現手工分頁的思路。
25.web service 數據傳輸有什麼限制 ? 爲何 ?DataTable 能夠做爲 web service 參數傳遞 麼? 答: 所傳輸的數據必須是可序列化的。 由於須要轉換爲 XML格式以能夠穿越防火牆, 作到真正的數據共享。由於 DataSet 處理 DataTable 的序列化以便進行封送處理, 因此沒法傳遞單個 DataTable 26. 經常使用的調用 WebService 的方法有哪些? 答: 在同一個解決方案中調用 WebService 方法; 在不一樣的解決方案中調用 WebService 方法;
10
在 Internet 上調用 WebService 方法; 利用 webservice.htc 調用 WebService 方法。
28. 在 C#中, string str = null 與 string str = 「」 請儘可能使用文字或圖象說明其中 的區別。 答:string str = null 是不給他分配內存空間 , 而 string str = "" 給它分配長 度爲空字符串的內存空間 .
30. 請詳述在 dotnet 中類 (class) 與結構 (struct) 的異同: 答:Class 能夠被實例化 , 屬於引用類型 , 是分配在內存的堆上的 ,Struct 屬於值類型 ,是分配 在內存的棧上的 .
31. 如何理解委託? 答: 聽說至關於函數指針 , 定義了委託就能夠在不調用原方法名稱的狀況下調用那個方法 . msdn2005中是這樣解釋的 : 委託具備如下特色: 委託相似於 C++ 函數指針,但它是類型安全的。 委託容許將方法做爲參數進行傳遞。 委託可用於定義回調方法。 委託能夠連接在一塊兒;例如,能夠對一個事件調用多個方法。 方法不須要與委託簽名精確匹配。有關更多信息,請參見協變和逆變。 C# 2.0 版引入了匿名方法的概念,此類方法容許將代碼塊做爲參數傳遞,以代替單獨定義 的方法。
33.override 與重載的區別 over ride 與重載的區別。重載是方法的名稱相同。參數或參數類型不一樣,進行屢次重載以 適應不一樣的須要 Override 是進行基類中函數的重寫。爲了適應須要。
34.abstract class 和 interface 有什麼區別 ? 答:聲明方法的存在而不去實現它的類被叫作抽象類 (abstract class) ,它用於要建立 一個體現某些基本行爲的類, 併爲該類聲明方法, 但不能在該類中實現該類的狀況。 不能創 建 abstract 類的實例。然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子 類的一個實例。不能有抽象構造函數或抽象靜態方法。 Abstract 類的子類爲它們父類中的 全部抽象方法提供實現, 不然它們也是抽象類爲。 取而代之, 在子類中實現該方法。知道其 行爲的其它類能夠在類中實現這些方法。 接口 (interface) 是抽象類的變體。在接口中,全部方法都是抽象的。多繼承性可經過 實現這樣的接口而得到。 接口中的全部方法都是抽象的, 沒有一個有程序體。 接口只能夠定 義 static final 成員變量。接口的實現與子類類似,除了該實現類不能從接口定義中繼承 行爲。 當類實現特殊接口時,它定義 ( 即將程序體給予 ) 全部這種接口的方法。 而後, 它能夠 在實現了該接口的類的任何對象上調用接口的方法。 因爲有抽象類, 它容許使用接口名做爲
11
引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換, instanceof 運算符能夠用來決定某對象的類是否實現了接口。
35.Session 有什麼重大 BUG,微軟提出了什麼方法加以解決 ? 答:是 iis 中因爲有進程回收機制, 系統繁忙的話 Session 會丟失,能夠用 Sate server 或 SQL Server 數據庫的方式存儲 Session 不過這種方式比較慢,並且沒法捕獲 Session 的 END事件。
36. 成員變量和成員函數前加 static 的做用 ? 答:它們被稱爲常成員變量和常成員函數, 又稱爲類成員變量和類成員函數。 分別用來 反映類的狀態。 好比類成員變量能夠用來統計類實例的數量, 類成員函數負責這種統計的動 做。
37. 簡述三層架構的利弊。
38. 簡述 AJAX控件 timer 的實現原理。
39. 簡述 ASP.NET中用戶控件和自定義控件的區別 .
40. 簡述 framework 在.NET 中的做用 .
41. 簡述 C#中引入泛型的好處。
42. 談談 arraylist 和 list<> 利弊.
43. 怎樣實現用 JS 調用服務器端定義的方法。
44. 簡述 ADO.NET中幾大對象的做用 .
45. 相對與其它 WEB開發平臺,微軟的 .net 平臺有什麼獨特的優點和劣勢。
46. 談談 Schema和 DTD相比,具備那些顯著的優點。
47. 什麼叫應用程序域?什麼是受管制的代碼?什麼是強類型系統?什麼是裝箱和拆箱? 什麼是重載? CTS、CLS和 CLR分別做何解釋? 答: (1)應用程序域(一般爲 AppDomain)是一個用於隔離應用程序的虛擬進程。 (2) 受管制的代碼: Managed Code,官方翻譯是「託管代碼」 ,即在 .net 中,由公 共語言運行環境進行管理的代碼,它主要負責內存管理。 (3)強類型系統: 是對系統的類型進行細化定義, 純粹是概念問題, 不作深刻研究的 話,看書理解一下就行。 (4)裝箱和拆箱:值類型轉化引用類型爲裝箱,引用類型轉化爲值類型爲拆箱。 (5)CTS:通用語言系統。 CLS:通用語言規範。 CLR:公共語言運行庫。
48. 強類型與弱類型的區別?
12
(1)答: 徹底的面向對象要求對象是強類型的。 強類型是隻在對象類型的定義儘可能的細化。 咱們能夠定義全部的對象都是 object, 而後容許後期綁定來對對象進行操做。事實上,有些 語言是弱類型的,特別是一些教本語言,好比 javascript. 弱類型語言對簡化了語言自己, 於是語言本事是能夠輕量的,在一些特殊的場合仍是頗有用的。 (2)但弱類型與強類型語言相比,它們能完成的功能從本質上來講,是沒有區別的。但 弱類型的輕量化是以犧牲開發的方便性和效率爲基礎的。 它將一部分機器能完成的事情移到 程序員來完成。若是開發一樣一個功能,若是用 javascript 和強類型的 vb.net 來開發, 二者對程序員的要求與開發所須要的時間是明顯不一樣的。
49. 請詳述在 c#中類 (class) 與結構 (struct) 的異同? 答:Class 能夠被實例化 , 屬於引用類型 , 是分配在內存的堆上的 ,Struct 屬於值類型 ,是分配 在內存的棧上的 . Class 能夠被繼承, struct 不能夠等等
50. GC 是什麼 ? 爲何要有 GC? 答: GC是垃圾收集器。程序員不用擔憂內存管理,由於垃圾收集器會自動進行管理。要請 求垃圾收集,能夠調用下面的方法之一:
System.gc()
Runtime.getRuntime().gc()
51.String s = new String("xyz"); 建立了幾個 String Object? 答: 兩個對象,一個是「 xyx」, 一個是指向「 xyx」的引用對象 s。
52.abstract class 和 interface 有什麼區別 ? 答: 聲明方法的存在而不去實現它的類被叫作抽象類( abstract class ),它用於要建立一 個體現某些基本行爲的類, 併爲該類聲明方法, 但不能在該類中實現該類的狀況。 不能建立 abstract 類的實例。然而能夠建立一個變量,其類型是一個抽象類,並讓它指向具體子類 的一個實例。不能有抽象構造函數或抽象靜態方法。 Abstract 類的子類爲它們父類中的所 有抽象方法提供實現,不然它們也是抽象類爲。取而代之,在子類中實現該方法。 知道其行 爲的其它類能夠在類中實現這些方法。 接口( interface )是抽象類的變體。在接口中,全部方法都是抽象的。多繼承性可經過實 現這樣的接口而得到。 接口中的全部方法都是抽象的, 沒有一個有程序體。 接口只能夠定義 static final 成員變量。接口的實現與子類類似,除了該實現類不能從接口定義中繼承行 爲。當類實現特殊接口時,它定義(即將程序體給予)全部這種接口的方法。而後,它能夠 在實現了該接口的類的任何對象上調用接口的方法。 因爲有抽象類, 它容許使用接口名做爲 引用變量的類型。一般的動態聯編將生效。引用能夠轉換到接口類型或從接口類型轉換, instanceof 運算符能夠用來決定某對象的類是否實現了接口。
53. 啓動一個線程是用 run() 仍是 start()? 答:啓動一個線程是調用 start() 方法,使線程所表明的虛擬處理機處於可運行狀態,這意 味着它能夠由 JVM調度並執行。這並不意味着線程就會當即運行。 run() 方法能夠產生必須 退出的標誌來中止一個線程。
54. 接口是否可繼承接口 ? 抽象類是否可實現 (implements) 接口 ? 抽象類是否可繼承實體 類(concrete class)?
13
答:接口能夠繼承接口。 抽象類能夠實現 (implements) 接口, 抽象類是否可繼承實體類, 但 前提是實體類必須有明確的構造函數。
55. 構造器 Constructor 是否可被 override? 答:構造器 Constructor 不能被繼承,所以不能重寫 Overriding ,但能夠被重載 Overloading 。
56. 是否能夠繼承 String 類? 答: String 類是 final 類故不能夠繼承。
57. try {} 裏有一個 return 語句,那麼緊跟在這個 try 後的 finally {} 裏的 code 會不會 被執行,何時被執行,在 return 前仍是後 ? 答: 會執行,在 return 前執行。
58. 兩個對象值相同 (x.equals(y) == true) ,但卻可有不一樣的 hash code ,這句話對不對 ? 答: 不對,有相同的 hash code 。
59.swtich 是否能做用在 byte 上,是否能做用在 long 上,是否能做用在 String 上? 答: 能夠
60. 當一個線程進入一個對象的一個 synchronized 方法後,其它線程是否可進入此對象的 其它方法 ? 答: 不能,一個對象的一個 synchronized 方法只能由一個線程訪問。
61.abstract 的 method 是否可同時是 static, 是否可同時是 native ,是否可同時是 synchronized? 答: 都不能。
62.List, Set, Map 是否繼承自 Collection 接口? 答: List ,Set 是 Map不是
63. Set 裏的元素是不能重複的, 那麼用什麼方法來區分重複與否呢 ? 是用 ==仍是 equals()? 它們有何區別 ? 答:Set 裏的元素是不能重複的, 那麼用 iterator() 方法來區分重複與否。 equals() 是判讀 兩個 Set 是否相等。 equals() 和==方法決定引用值是否指向同一對象 equals() 在類中被覆蓋,爲的是當兩個分 離的對象的內容和類型相配的話,返回真值
64. 數組有沒有 length() 這個方法 ? String 有沒有 length() 這個方法? 答:沒有這個方法可是有 length 這個屬性。
65. sleep() 和 wait() 有什麼區別 ? 答:sleep() 方法是使線程中止一段時間的方法。在 sleep 時間間隔期滿後,線程不必定立 即恢復執行。 這是由於在那個時刻, 其它線程可能正在運行並且沒有被調度爲放棄執行, 除 非(a) 「醒來」的線程具備更高的優先級
14
(b) 正在運行的線程由於其它緣由而阻塞。 wait() 是線程交互時,若是線程對一個同步對象 x 發出一個 wait() 調用,該線程會暫停執 行,被調對象進入等待狀態,直到被喚醒或等待時間到。
66. short s1 = 1; s1 = s1 + 1; 有什麼錯 ? short s1 = 1; s1 += 1; 有什麼錯 ? 答: short s1 = 1; s1 = s1 + 1; 有錯, s1 是 short 型, s1+1 是 int 型, 不能顯式轉化爲 short 型。可修改成 s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1 正確。
67. 談談 final, finally, finalize 的區別。 答: final —修飾符(關鍵字)若是一個類被聲明爲 final ,意味着它不能再派生出新的子類, 不能做爲父類被繼承。所以 一個類不能既被聲明爲 abstract 的,又被聲明爲 final 的。將變量或方法聲明爲 final ,能夠保證它們在使用中 不被改變。被聲明爲 final 的變量必須在聲明時給定初值, 而在之後的引用中只能讀取, 不可修改。被聲明爲 final 的方法也一樣只能使用,不能重載 finally —再異常處理時提供 finally 塊來執行任何清除操做。 若是拋出一個異常, 那麼相 匹配的 catch 子句就會 執行,而後控制就會進入 finally 塊(若是有的話) 。 finalize —方法名。 Java 技術容許使用 finalize() 方法在垃圾收集器將對象從內存中清 除出去以前作必要的清理 工做。這個方法是由垃圾收集器在肯定這個對象沒有被引用 時對這個對象調用的。它是在 Object 類中定義的 ,所以全部的類都繼承了它。子類 覆蓋 finalize() 方法以整理系統資源或者執行其餘清理工做。 finalize() 方法是在 垃圾收集器刪除對象以前對這個對象調用的。
68. 如何處理幾十萬條併發數據? 答:用存儲過程或事務。 取得最大標識的時候同時更新 .. 注意主鍵不是自增量方式這種方法 併發的時候是不會有重複主鍵的 .. 取得最大標識要有一個存儲過程來獲取 .
69.Session 有什麼重大 BUG,微軟提出了什麼方法加以解決? 答:是 iis 中因爲有進程回收機制,系統繁忙的話 Session 會丟失,能夠用 Sate server 或 SQL Server 數據庫的方式存儲 Session 不過這種方式比較慢,並且沒法捕獲 Session 的 END事件。
70. 進程和線程的區別? 答:進程是系統進行資源分配和調度的單位; 線程是 CPU調度和分派的單位, 一個進程能夠 有多個線程,這些線程共享這個進程的資源。
71. 堆和棧的區別? 答: 棧:由編譯器自動分配、釋放。在函數體中定義的變量一般在棧上。 堆:通常由程序員分配釋放。用 new、malloc 等分配內存函數分配獲得的就是在堆上。
72. 成員變量和成員函數前加 static 的做用? 答:它們被稱爲常成員變量和常成員函數, 又稱爲類成員變量和類成員函數。 分別用來反映 類的狀態。好比類成員變量能夠用來統計類實例的數量,類成員函數負責這種統計的動做。
15
73. 請指出 GAC的含義? 答:全局程序集緩存。
74. 在 c#中 using 和 new這兩個關鍵字有什麼意義, 請寫出你所知道的意義? using 指令和 語句 new 建立實例 new 隱藏基類中方法。 答: using 引入名稱空間或者使用非託管資源 new 新建實例或者隱藏父類方法
75. 什麼是虛函數?什麼是抽象函數? 答:虛函數:沒有實現的,可由子類繼承並重寫的函數。抽象函數:規定其非虛子類必須實 現的函數,必須被重寫。
76. C# 中 property 與 attribute 的區別,他們各有什麼用處,這種機制的好處在哪裏? 答:一個是屬性,用於存取類的字段,一個是特性,用來標識類,方法等的附加性質
77. c# 中的三元運算符是? 答:?:
78. 當整數 a 賦值給一個 object 對象時,整數 a 將會被? 答:裝箱。
79. 類成員有 _____種可訪問形式? 答: this. 類成員 ; new Class ()類成員
80. public static const int A=1; 這段代碼有錯誤麼?是什麼? 答: const 不能用 static 修飾。
81.float f=-123.567F; int i=(int)f;i 的值如今是 _____? 答: -123 。
82. 委託聲明的關鍵字是 ______? 答: delegate.
83. 用 sealed 修飾的類有什麼特色? 答:密封,不能繼承。
84. 如何在 C#中實現繼承? 在類名後加上一個冒號,再加上基類的名稱。
85. 一個進程能夠訪問的 Windows地址空間有多大?等於系統的虛擬內存大小麼?這兩方面 將對系統的設計產生什麼樣的影響? 答:4G,虛擬內存大小是看你物理內存大小來定的啊, 實際進程在 windows 上默認是能夠訪 問 2G內存,經過一個 /3g boot 參數,能夠用到 3G
16
86. 下面這個命令是作什麼的? gacutil /l | find /i 「system 」 答:全局緩存工具, gacutil /l 列出全局程序集緩存的內容。 /i 「system 」將程序集安裝 到全局程序集緩存中。
87. 列舉 ADO.net 中的五個主要對象 答.Connection,Command,DataAdapter,DataSet,DataTable,DataView 等
88. 從數據庫讀取記錄,你可能用到的方法有: 答: ExecuteScalar()
Fill()
ExecuteReader()
89. 概述反射和序列化 答:反射 : 程序集包含模塊, 而模塊包含類型, 類型又包含成員。 反射則提供了封裝程序集、 模塊和類型的對象。 您可使用反射動態地建立類型的實例, 將類型綁定到現有對象, 或從 現有對象中獲取類型。而後,能夠調用類型的方法或訪問其字段和屬性 序列化 : 序列化是將對象轉換爲容易傳輸的格式的過程。例如,能夠序列化一個對象,而後 使用 HTTP 經過 Internet 在客戶端和服務器之間傳輸該對象。 在另外一端, 反序列化將從該 流從新構造對象。
90. 概述 o/r mapping 的原理 答:利用反射,配置 將類於數據庫表映射
91. 用.net 作 B/S 結構的系統, 您是用幾層結構來開發, 每一層之間的關係以及爲何要這 樣分層? 答: a) 通常爲 3 層 b) 數據訪問層,業務層,表示層。 c) 數據訪問層對數據庫進行增刪查改。 d) 業務層通常分爲二層, 業務表觀層實現與表示層的溝通, 業務規則層實現用戶密碼 的安全等。 e) 表示層爲了與用戶交互例如用戶添加表單。 f) 優勢:分工明確,條理清晰,易於調試,並且具備可擴展性。 g) 缺點:增長成本。
92. Session 有什麼重大 BUG,有什麼方法加以解決? 答:是 iis 中因爲有進程回收機制,系統繁忙的話 Session 會丟失,能夠用 Sate server 或 SQL Server 數據庫的方式存儲 Session 不過這種方式比較慢,並且沒法捕獲 Session 的 END事件。
93. 每次咱們請求一個 asp.net 頁面時,咱們都經歷着一樣的過程 , 咱們稱它爲 asp.net 頁 面生命週期!每一個頁面的生命週期爲用戶的每一次訪問,也就是說每一次客戶端與服務器 之間的一個往返過程 . 請你說一說這個過程它們都發生了那些事件? 答:(1). Page_Init();
17
(2). Load ViewState and Postback data;
(3). Page_Load();
(4). Handle control events;
(5). Page_PreRender();
(6). Page_Render();
(7). Unload event;
(8). Dispose method called;
94. 什麼是 ASP.net 中的用戶控件? ( 用戶控件和自定義控件有什麼區別 ?) 答: 主要是分清這兩個區別, (一). 用戶控件和自定義控件概述 用戶控件 (UserControl): 擴展名爲 *.ascx, 跟*.aspx 在結構上類似,是指頁面中 加載的功能塊 , 只是用戶控件不能單獨做爲頁面運行 , 必須嵌入到 *.aspx 頁面或其它用 戶控件中使用 . 自定義控件, 跟 HtmlControl 或 WebControl 類似,編譯後能夠添加引用到工具欄裏 面,直接用鼠標拖動使用 .
95..net 中讀寫數據庫須要用到那些類?他們的做用? 答: DataSet: 數據存儲器。 DataCommand: 執行語句命令。 DataAdapter: 數據的集合,用語填充。
96.ASP.net 的身份驗證方式有哪些?分別是什麼原理? 答:(1)Windows 身份驗證提供程序 提供有關如何將 Windows 身份驗證與 Microsoft Internet 信息服務 (IIS) 身份驗證結 合使用來確保 ASP.NET 應用程序安全的信息。 (2)Forms 身份驗證提供程序 提供有關如何使用您本身的代碼建立應用程序特定的登陸窗體並執行身份驗證的信息。 使用 Forms 身份驗證的一種簡便方法是使用 ASP.NET 成員資格和 ASP.NET 登陸控件,它們一塊兒 提供了一種只需少許或無需代碼就能夠收集、驗證和管理用戶憑據的方法。 (3)Passport 身份驗證提供程序 提供有關由 Microsoft 提供的集中身份驗證服務的信息,該服務爲成員站點提供單一登陸 和核心配置
97. 在.net 中,配件的意思是? 答:程序集。(中間語言,源數據,資源,裝配清單)
98. 經常使用的調用 WebService 的方法有哪些? 答: 1. 使用 WSDL.exe命令行工具。 2. 使用 VS.NET中的 Add Web Reference 菜單選項
99. net Remoting 的工做原理是什麼? 答:服務器端向客戶端發送一個進程編號,一個程序域編號,以肯定對象的位置。
18
100. 簡要談一下您對微軟 .NET 構架下 remoting 和 webservice 兩項技術的理解以及實際中 的應用。 答: WS主要是可利用 HTTP,穿透防火牆。而 Remoting 能夠利用 TCP/IP,二進制傳送提升 效率。
101. 公司要求開發一個繼承 System.Windows.Forms.ListView 類的組件,要求達到如下的 特殊功能:點擊 ListView 各列列頭時,能按照點擊列的每行值進行重排視圖中的全部行 ( 排 序的方式如 DataGrid 類似 )。根據您的知識,請簡要談一下您的思路 答:根據點擊的列頭 , 包該列的 ID 取出, 按照該 ID 排序後 , 在給綁定到 ListView 中。
102. ASP 。NET與 ASP相比,主要有哪些進步? 答: asp 解釋形, aspx 編譯型,性能提升,有利於保護源碼。
103. 向服務器發送請求有幾種方式? 答: get,post
104. .DataReader 與 Dataset 有什麼區別? 答:一個是隻能向前的只讀遊標,一個是內存中的表。
105. 什麼叫作 SQL注入,如何防止?請舉例說明。 答:利用 sql 關鍵字對網站進行攻擊。過濾關鍵字 ' 等
106. 什麼是反射? 答:動態獲取程序集信息
107. Singleton 如何寫設計模式 答: static 屬性裏面 new , 構造函數 private
108. 什麼是 Application Pool ? 答: Web應用,相似 Thread Pool ,提升併發性能。
109. 什麼是 XML? 答: XML 便可擴展標記語言。 eXtensible Markup Language. 標記是指計算機所能理解的信 息符號,經過此種標記,計算機之間能夠處理包含各類信息的文章等。如何定義這些標記, 便可以選擇國際通用的標記語言,好比 HTML,也可使用象 XML這樣由相關人士自由決定 的標記語言,這就是語言的可擴展性。 XML是從 SGML中簡化修改出來的。它主要用到的有 XML、XSL和 XPath 等。
110. XML 與 HTML 的主要區別 答: 1. XML 是區分大小寫字母的, HTML不區分。 2. 在 HTML中,若是上下文清楚地顯示出段落或者列表鍵在何處結尾, 那麼你能夠省略 </p> 或者 </li> 之類的結束 標記。在 XML中,絕對不能省略掉結束標記。 3. 在 XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個 / 字符做爲結尾。
19
這樣分析器就知道不用 查找結束標記了。 4. 在 XML中,屬性值必須分裝在引號中。在 HTML中,引號是可用可不用的。 5. 在 HTML中,能夠擁有不帶值的屬性名。 在 XML中,全部的屬性都必須帶有相應的值。
111 .net 的錯誤處理機制是什麼? 答: .net 錯誤處理機制採用 try->catch->finally 結構,發生錯誤時,層層上拋,直到找 到匹配的 Catch 爲止。
112.C#中的表單界面上,有一個 DataGrid 控件,如何將 SQL數據庫裏的一個表中的數據顯 示在這個控件上,請描述一下操做方法及步驟: 答: (1) 根據鏈接字符串,建立數據庫鏈接對象,並根據鏈接對象建立 Command對象。 (2) 根據 SQL語句,查詢表信息。 (3) 使用 DataApapter 對象,將查詢結果填充到 DataSet 中的 objDataset 數據表裏。 (4) 將 DataGrid 的數據源設置成 objDataset 數據表,實現數據綁定。
113. 在 C#中,有幾種鏈接到數據庫的方式, 請列舉出並分別說明它們能夠鏈接哪些數據庫 (1)Sql.Net Framework 鏈接 sql server7.0 或以上更高版本數據庫。 (2)Oledb.Net Framework 鏈接 Access 和 sql server6.5 或如下版本數據庫。 (3)Odbc.Net Frameworka( 橋連 ) 能夠鏈接 sql server 數據庫和 odbc 公開數據源。 (4)Oracle.Net Framework 鏈接 Oracle 數據庫。
114. 請描述一下在 ASP.NET中, Application 對象、 Session 對象、 Cookies 對象的用法及 不一樣之處,及它們與傳統的 ASP有沒有不一樣之處? 答: Application 對象是做用於整個程序運行期的狀態對象。 Session 對象是會話期狀態保持對象,用於跟蹤單一用戶的會話。 Cookies 對象客戶端保持會話信息的一種方式。
115. 試簡單描述如下擴展名程序或系統檔案的角色 答: .ascx , .aspx , .dll , .vb , .xml, css , js, global.asax ,web.config Ascx 後綴表示用戶控件 Aspx 後綴表示頁面 .dll 表示類庫集 .vb 是 vb.Net 的源文件 .xml 表示是用可擴展標記語言編寫的文件 Css 表示樣式表文件 Js 表示 javascript 腳本文件 Global.asax 文 件 在 應 用 程 序 的 根 目 錄 中 , 負 責 處 理 Application_Start,Application_End,Session_Start,Session_End 事件 Web.Config 文件存儲應用程序的配置信息
116..net 中讀寫 XML的類都歸屬於哪些命名空間? 答:System.Xml
117. 相對於 .NET 1.1 ,.NET2.0 爲了不過分的 boxing/unboxing 形成的系統開銷提供了哪
20
些支持?
118. 請談談面向對象的特性及你對面向對象的理解?
119.簡述 Javascript 中的 $符號表示什麼?
120.列舉 ADO.NET中的五大主要對象及其做用?
121. 簡述接口和抽象類的異同?你選擇使用接口和抽象類的依據是什麼?
122. 請列舉 ADO.NET中讀取數據的方法及其工做原理?
123. 簡述 private 、 protected 、 public 、 internal 修飾符的訪問權限。
124 . 列舉 ASP.NET 頁面之間傳遞值的幾種方式。
125. C#中 property 與 attribute 的區別,他們各有什麼用處,這種機制的好處在哪裏?
126. 講一講你理解的 web service, 在 dot net framework 中,怎麼很好的結合 xml?(講 概念就好了)
127. C#, Java 和 c++ 的特色,有什麼相同的地方,不一樣的地方, C#分別從 c++和 java 中 吸收了他們那些優勢?
128. C# 能否對內存進行直接的操做?
129. 用 Visual C++ 6.0 編寫的代碼 (unmanaged code) ,如何在 CLR下和其餘 dot net component 結合?
130. 之前做過的一些項目?介紹一下本身的編程經驗。 (這是矇混不過去的,基本一問就 知道是真是假 )
131: 維護數據庫的完整性、一致性、你喜歡用觸發器仍是自寫業務邏輯?爲何
132:ADO.NET相對於 ADO等主要有什麼改進?
133:ASP.NET與 ASP相比,主要有哪些進步?
134:C#中的委託是什麼?事件是否是一種委託?
135:描述一下 C#中索引器的實現過程,是否只能根據數字進行索引?
136:配置異常 (Debug | Exceptions) 每一個異常均可以配置。 137. 健壯程序的處理 1) throw 對應的異常,不可以慎用 Catch(Exception e) 這種捕獲方法 . 2) 異常轉義拋出 , 給用戶以合理的提示 , 不要拋出假異常 . 3) 給出斷言 Trace.Assert() 便於調試 . 4) 在程序的最後一層 , 最好要處理一下異常 , 可是同時要記錄日誌 Log, 既要保證
21
用戶沒有中斷操做 ,又要給本身的改進帶來依據 (把異常的 日誌返回 到開發人員手中 ), 若是有 Reporting Server 更好 . 5) 總之 , 不要輕易吃掉異常 , 只能增長開發的成本
138. 類的修飾符 1) internal 項目內部用 2) public 默認狀況 3) abstract 抽象的 , 不能夠實例化 , 只可以繼承 , 可有抽象成員 4) sealed 密封的 , 不可以繼承 , 能夠是公有的 , 也能夠是內部的 .
139. 全部的接口成員都必須在支持該接口的類中執行 , 若是不想使用給定的接口成員 , 能夠 提供一個 "空" 的執行方法 (沒有函數代碼 )
140. 基類必須是繼承列表中的第一項 .
141.GetHashCode 用以對象的散列函數 , 返回一個以壓縮形式標識的對象的值 .
142. 抽象類和接口的區分 : 1) 派生類只可以繼承一個抽象類 , 但可使用任意多接口 . 2) 抽象類可有抽象成員 ( 但必須在派生類中執行 , 不然派生類自己必須是抽象的 ), 接 口成員必須在使用接口的類上執行 -沒有代碼體接口成員 被定義爲公有的 , 可是抽象類的成員也能夠是私有的 . 接口不包括靜態成員 , 字段 , 變量 . 3) 抽象類主要用於對象系列的基類 , 共享某些主要特性 , 例如共同的目的和結構 ,接口 主要是供類使用 , 這些類在基礎水平上有所不一樣 , 但仍然能夠完成某些相同的任務 . 143. 成員複製簡單的對象能夠經過 System.Object 的 MemberwiseClone() 方法完成 , 稱爲 淺度複製 ; 由於他沒有考慮引用類型的成員 . 執行一個接口 IConeable 必須執行 Clone() 的方法 , 深度複製 . 144.virtual 方法能夠重寫 ,abstract 方法必須重寫 ,extern 方法定義放在其餘地方 . 如 果使用了 override, 也可使用 sealed 指定在派生類中不能對這個方法作出進一步修改 .
145. 隱藏基類的實現:空方法體; new public void DoSomething()
146.IEnumerable 實現了循環集合中項的功能 . ICollection 繼承 IEnumerable 獲取集合中項的個數 , 並把項複製到一個數組中 . IList 繼承 IEnumerable 和 ICollection 提供集合項列表,並能夠訪問這些項 IDictionray 繼承 IEnumerable 和 ICollection 相似於 IList ,但提供了經過鍵碼 值而不是索引訪問的項列表 . CollectionBase 的接口有 IList,ICollection,IEnumerable
Array
147.IDictionary 簡化的 DictionaryBase, 要遍歷內容其 Item 爲: DictionaryEntry 結構
22
148. 轉換運算符中關鍵字 : implicit,explicit.
149.is 運算符不檢查兩個類型是否相同 , 但能夠檢查類型是否兼容 , 若是轉換成功 , 則返回
true.
150.as 運算符轉換要麼成功 , 不然就返回 null.
151. 定製異常 , 處理自定義異常 .
152. 事件處理 .
153. 控件屬性設置,例如:設定 [Conditional("DEBUG")] call some method assigned by
the attribute only available if DEBUG is defined......
154. 調用堆棧,斷點,命令窗口,輸出,自動窗口,局部變量,監視 Immediate 模式:調試和計算表達式 Command 模式:發佈命令 計算表達式:在表達式前加上問號 Command - 〉Immediate 輸入 immed 不須要大於號,不然輸入〉 cmd 在 Immediate 模 式下臨時進入 Command 模式 (執行單條命令)輸入〉 alias ,更多命令查看 MSDN 局部變量,察看斷點先後三行的值
155. 描述下 C#中的程序集?程序集是有哪兩部分組成? 答:程序集是自我描述的安裝單元, 由一個或多個文件組成, 一個程序集能夠是一個包含元 數據的 DLL或 EXE,也能夠由多個文件組成,例如資源文件、元數據、 DLL和 EXE。程序集 的安裝僅是複製全部的文件而已, 使用 xcopy 命令便可完成安裝, 有兩種類型: 私有的和共 有的。
156. 請寫出 BOOL flag 與「零值」比較的 if 語句?請寫出 char p 與「零值」比較 的 if 語句? 答: if(flag){};if(!flag) 。
157. 說出下面幾個函數的區別 : private void test(string str){,} :經過值傳送變量 private void test(ref string str){,} :值參數經過引用傳遞給方法,必須先初始 化 str private void test(out string str){,} : str 經過引用被傳送,從 test 中返回時, 保留該方法對其的改變
158. 什麼是強類型系統? 答: C# 是強類型語言;所以每一個變量和對象都必須具備聲明類型
159. 值類型和引用類型的區別?
23
答:值類型直接存儲其值,引用類型存儲對值的引用。值類型存儲在堆棧中,而引用類 型存儲在託管堆上。 值類型包括: 簡單類型、 結構類型、 枚舉類型; 引用類型包括: 類、 數組、接口、委託、字符串、數組。
160. 如何理解委託? 答:有點相似於指針,但他是類型安全的,經過對於方法特徵和返回類型的聲明,封裝 了具備相同特徵和返回類型的方法。不關心該方法是什麼類型的對象,甚至是靜態的還 是實例的。委託能夠鏈接在一塊兒,能夠對一個事件調用多個方法。
161. 事務是什麼? 答:在許多大型、關鍵的應用程序中,計算機每秒鐘都在執行大量的任務。更爲常常的 不是這些任務自己,而是將這些任務結合在一塊兒完成一個業務要求,稱爲事務。當某一 個任務失敗時,就恢復到指定的恢復點,這個叫回滾。
162. 解釋重載函數、虛擬函數的概念? 答:重載方法:是指使用相同的方法名,但指定不一樣的參數(個數,類型) 。 虛擬方法:在基類中對要實現多態性的方法加上 virtual 關鍵字,在派生類中的同 名方法前面,加上 override 關鍵字修飾,並改寫該方法的代碼。
163.請簡述如下兩個 for 循環的優缺點
for (i=0; i<N; i++)
{
if (condition)
DoSomething();
else
DoOtherthing();
}
if (condition)
{
for (i=0; i<N; i++)
DoSomething();
}
else
{
for (i=0; i<N; i++)
DoOtherthing();
}
答:其實這兩個 for 循環在不一樣的環境下不一樣。 總的來講前面的代碼簡潔, 可是多執行 了 N-1 次,效率底些,後面的效率高些,可是不夠簡潔。
164.描述怎樣區分 ExcuteNonQuery ,ExcuteDataReader 和 ExcuteScalar 方法? 答 : ExcuteNonQuery 返 回受 影 響 的 行 數; ExcuteDataReader 返 回 DataReader ; ExcuteScalar 返回查詢結果的第一行的一列的值,忽略其餘行列。
165. 列出 ADO。NET中讀寫數據庫的主要的幾個類?它們的做用? 答: Connection 數據庫鏈接; Command執行 SQL語句或存儲過程; DataAdapter 用於填 充 DataSet 和更新數據庫的一組數據命令和數據庫鏈接,斷開模式; DataReader , 讀取數據庫信息,是隻讀向前的; DataSet 數據在內存中的緩存。
24
166. 什麼是中間語言( IL )?它的做用? 答:代碼在執行前都要被編譯爲託管代碼,與 CPU無關的指令集。 其做用:支持平臺無關性,還支持語言的互操做性。
167. 觸發器能夠強制限制,這些限制比用 CHECK 約束所定義的更復雜。與 CHECK 約束不一樣的是,觸發器能夠引用其它表中的列。
168.在 ASP.NET中頁面之間傳遞值的方式? (儘量敘述 ) 答: session(viewstate) 簡單,但易丟失 application 全局 cookie 簡單,但可能不支持,可能被僞造 input ttype="hidden" 簡單,可能被僞造 url 參數 簡單,顯示於地址欄,長度有限 數據庫 穩定,安全,但性能相對弱
169.分析類和結構的異同? 答: 類是引用類型,能夠繼承類、接口和被繼承,有默認的構造函數,有析構函數,可 以使用 abstract 和 sealed ,有 protected 修飾符,必須使用 new 初始化。 結構 是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,能夠建立,沒 有析構函數, 不能夠用 abstract 和 sealed ,沒有 protected 修飾符,能夠不用 new 初始化。 如何選擇使用結構仍是類: 1.堆棧的空間有限,對於大量的邏輯的對象,建立類要比建立結構好一些 2.結構表示如點、矩形和顏色這樣的輕量對象,例如,若是聲明一個含有 1000 個 點對象的數組,則將爲引用每一個對象分配附加的內存。在此狀況下,結構的成本較 低。 3.在表現抽象和多級別的對象層次時,類是最好的選擇 4.大多數狀況下該類型只是一些數據時,結構是最佳的選擇
171.敘述 ASP。NET中的 equiredFieldValidator 和 RegularExpressionValitor 驗證 控件及做用? 答:equiredFieldValidator 是必須字段驗證, RegularExpressionValitor 是正則表達 式驗證。
172.敘述下 Using 的用法? 答: 1. using 指令。 using + 命名空間名字,這樣能夠在程序中直接用命令空間中的類 型,而沒必要指定類型的詳細命名空間。 2.using 別名。 using + 別名 = 包括詳細命名空間信息的具體的類型。當一個 cs 引用多個命名空間時,而有相同的類型時能夠這樣作。好比 namespace1 和 namespace2 下 面 都 有 myClass 類 時 , 可 以 using class1 = namespace1.myClass;using class2 = namespace2.myClass 。 3.using 語句,定義一個範圍,在範圍結束時處理對象。
173.C#中接口和類有什麼異同?
25
答:接口包括屬性、方法、事件,是負責功能的聲明和定義的,功能的實現從繼承他的 類中實現。類是實現具體功能的,能夠繼承多個接口,可是隻能繼承一個基類。
174.什麼是裝箱和拆箱? 答:裝箱就是把值類型轉換成引用類型,拆箱是把引用類型轉換成值類型。
175.什麼是 WEBSERVICE ? 答: web服務,是利用 SOAP(簡單對象訪問協議, Simple Object Access Protocol ) 在 HTTP上執行遠程方法調用的一種方法,也可使用 WSDL (Web Service Description Language,Web服務描述語言)來完整的描述 Web服務,基於 XML標準。
176.軟件開發過程通常有幾個階段? 答:分析,開發,測試,維護
177.在 ASP。NET中自定義控件是什麼? 答:自定義控件,跟 HtmlControl 或 WebControl 類似,編譯後能夠添加引用到工具欄 裏面,直接用鼠標拖動使用
178.ASP.NET的 Application 、Session 、Cookie 、ViewState 和 Cache 等變量的區別是 什麼? 答: Application :可以包含任意大小的信息,在整個應用程序週期中有效,是面對所 有應用程序用戶的,保存於服務器端。 a) Session :可以保存相對少許的、 簡單的數據,通常在用戶活動時間加上一端 Timeout 設定時間中有效(一般是 20 分鐘 Timeout ),這是面向單個用戶的信息,保存於服 務器端。 b) Cookie :保存少許的、簡單的數據,通常不容許超過 4KB,使用期限能夠進行靈活 設定,面向單個用戶,保存於瀏覽器中(也就是客戶端) 。 c) ViewState :保存少許的數據,在一個 Web頁面週期內有效,面向單個用戶,保存 於客戶端。 d) Cache:緩存,大小任意,能夠靈活設定可用時間,通常針對全部用戶,保存於客 戶端。
179.解釋下在 ASP.NET中 Response 的做用 ? 答:Response 對象用於向客戶端瀏覽器發送數據, 用戶可使用該對象將服務器的數據 以 HTML的格式發送到用戶端的瀏覽器,它與 Request 組成了一對接收、發送數據 的對象,這也是實現動態的基礎。
180.解釋下在 ASP.NET中 Request 的做用 ? 答: Request 對象的主要做用就是:在服務器端接受並獲得從客戶端瀏覽器提交或上傳 的信息。包括從 HTML表格用 POST方法或 GET方法傳遞的參數、 cookie 和用戶認證。
181.C#中可以使用指針嗎 ?若是不能使用說明理由 , 若是能使用說出使用方法 ? 答:可使用。只能在標記爲 unsafe 關鍵字的地方使用,任何方法、類、結構、成員 都能標記爲 unsafe ,也能夠把方法中的一個代碼塊標記爲 unsafe ,但要注意,不能把
26
局部變量自己標記爲 unsafe ,除非在 unsafe 的方法或代碼塊中聲明。
182.什麼是中間語言( IL )?它的做用? 答:代碼在執行前都要被編譯爲託管代碼,與 CPU無關的指令集。 其做用:支持平臺無關性,還支持語言的互操做性。
183.什麼是裝箱和拆箱? 答:值類型轉換成引用類型是裝箱,引用類型轉換成值類型是拆箱。
184. 出 ADO。NET中讀寫數據庫的主要的幾個類?它們的做用? 答:Connection 數據庫鏈接; Command執行 SQL語句或存儲過程; DataAdapter 用於填 充 DataSet 和更新數據庫的一組數據命令和數據庫鏈接,斷開模式; DataReader , 讀取數據庫信息,是隻讀向前的; DataSet 數據在內存中的緩存。
185.C#中接口和類有什麼異同? 答: 類是引用類型,能夠繼承類、接口和被繼承,有默認的構造函數,有析構函數,可 以使用 abstract 和 sealed ,有 protected 修飾符,必須使用 new 初始化。 結構 是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,能夠建立,沒 有析構函數, 不能夠用 abstract 和 sealed ,沒有 protected 修飾符,能夠不用 new 初始化。 如何選擇使用結構仍是類: 1.堆棧的空間有限,對於大量的邏輯的對象,建立類要比建立結構好一些 2.結構表示如點、矩形和顏色這樣的輕量對象,例如,若是聲明一個含有 1000 個 點對象的數組,則將爲引用每一個對象分配附加的內存。在此狀況下,結構的成本較 低。 3.在表現抽象和多級別的對象層次時,類是最好的選擇 4.大多數狀況下該類型只是一些數據時,結構是最佳的選擇
186. 解釋 ASP。NET中的 code-behind? 答:代碼隱藏,顯示邏輯的代碼和處理邏輯的代碼分離
187. 什麼是 ASP。NET中的用戶控件? 答:是 asp.net 代碼建立的控件,就像在標準的 ASP.NET Web頁面中建立控件同樣,可 以在多個 ASP.NET頁面中重用它們。
188. 在 C#中, string str = null 與 string str = 「」 請儘可能說明其中 的區別。 答: string str =null 沒有分配空間, string str =「」分配了空間
189. 什麼是受管制代碼? 答:由公共語言運行環境進行管理的代碼,它主要負責內存管理。在 .net 平臺上運行 的代碼都是受管制代碼
190 .C#中經常使用的訪問形式?它們各自的做用域?
27
答: public 不受限制的訪問。 private 只能在本類中訪問 protected 本類和繼承他的類中訪問 internel 表示在同一個應用程序( application )或類庫( library )中都能使用
191.CTS,CLS,CLR分別做何解釋? 答: CTS:公共類型系統 . 主要是爲了語言之間的進行標準化處理 . CLS:公共語言規範 . 主要是確保代碼能夠在任何語言中訪問的最小標準集體 CLR:公共語言運行時 . 主要是管理代碼 .. 處理 , 加載代碼 , 以及全部服務的代碼
192. ASP 。NET和 ASP的主要優點? 答: ASP.Net 的優點: ASP.Net 擺脫了之前 ASP使用腳本語言來編程的缺點, 理論上可使用任何編程語言包 括 C++ , VB , JS 等等,固然,最合適的編程語言仍是 MS爲.Net Frmaework 專門推出 的 C(讀 c sharp) ,它能夠看做是 VC和 Java 的混合體吧,儘管 MS本身講 C#內核中更 多的象 VC,但實際上我仍是認爲它和 Java 更象一些吧。 首先它是面向對象的編程語言, 而不是一種腳本,因此它具備面向對象編程語言的一切特性, 好比封裝性、 繼承性、多 態性等等, 這就解決了剛纔談到的 ASP的那些弱點。 封裝性使得代碼邏輯清晰, 易於管 理,而且應用到 ASP.Net 上就可使業務邏輯和 Html 頁面分離,這樣不管頁面原型如 何改變, 業務邏輯代碼都沒必要作任何改動; 繼承性和多態性使得代碼的可重用性大大提 高,你能夠經過繼承已有的對象最大限度保護你之前的投資。而且 C#和 C++、Java 一 樣提供了完善的調試 / 糾錯體系。
193. NET 的錯誤處理機制是什麼? 答: try{ 可能要出錯的代碼 } catch{ 撲捉到錯誤後的處理 } finally{ 不論代碼是否出錯都要執行 }
194. 解釋 Page.IsPostBack 屬性? 答:使用者第一次瀏覽這個網頁時 Page.IsPostBack 會傳回 False, 不是第一次瀏覽這 個網頁時就傳回 True
195..net framework 包含哪幾種技術? 答: Application Framework,Domain Framework
196.解釋下 C#中的方法的重載? 答:重載方法:是指使用相同的方法名,但指定不一樣的參數(個數,類型) 。
197.事務是什麼? 答:在許多大型、關鍵的應用程序中,計算機每秒鐘都在執行大量的任務。更爲常常的 不是這些任務自己,而是將這些任務結合在一塊兒完成一個業務要求,稱爲事務。當某一 個任務失敗時,就恢復到指定的恢復點,這個叫回滾。
198.描述下 ASP。NET中使用 DataReader 對象 和 DataSet 對象的區別?
28
答: dataset 是保存數據的數據結構,斷開模式,而 DataReader 不承擔保存數據的責 任,須要本身手動關閉鏈接數據庫, 它只負責從數據源讀取數據到本地而已, 是隻讀向 前的,它不是數據結構,而是網絡通信組件的高層封裝。
199.分析類和結構的異同? 答:類是引用類型,能夠繼承類、接口和被繼承,有默認的構造函數,有析構函數, 可使用 abstract 和 sealed ,有 protected 修飾符,必須使用 new初始化。 結構是值類型,只能繼承接口,不能被繼承,沒有默認的構造函數,能夠建立,沒有 析構函數,不能夠用 abstract 和 sealed ,沒有 protected 修飾符,能夠不用 new初始化。 如何選擇使用結構仍是類: 1.堆棧的空間有限,對於大量的邏輯的對象,建立類要比建立結構好一些 2.結構表示如點、矩形和顏色這樣的輕量對象,例如,若是聲明一個含有 1000 個點 對象的數組,則將爲引用每一個對象分配附加的內存。在此狀況下,結構的成本較低。 3.在表現抽象和多級別的對象層次時,類是最好的選擇 4.大多數狀況下該類型只是一些數據時,結構是最佳的選擇
200.解釋 ADO 。NET中的使用 Connection 類的 CLOSE()和 DISPOSE()的區別? 答: close 只是關閉, dispose 是釋放資源。
201.敘述 ADO 。NET中的 DataAdapte 類的做用? 答:斷開模式鏈接數據庫,而且填充 DataSet 。
202.什麼是 WEBSERVICE ? 答: web服務,是利用 SOAP(簡單對象訪問協議, Simple Object Access Protocol ) 在 HTTP 上執行遠程方法調用的一種方法,也可使用 WSDL ( Web Service Description Language,Web服務描述語言)來完整的描述 Web服務,基於 XML標 準。
203.敘述 ASP。NET 中的幾種驗證控件 (equiredFieldValidato, CompareValidator,
RangeValidator, RegularExpressionValitor, CustomValidator, ValidationSummary) 及做用?
答: a) RequiredFieldValidator (必須字段驗證) ; b) CompareValidator (比較驗證); c) RangeValidator (範圍驗證); d) RegularExpresionValidator (正則表達式) ; e) ValidationSummary (驗證總結); f) CustomValidator (自定義驗證)
204. 用 sealed 修飾的類有什麼特色 sealed 修飾符用於防止從所修飾的類派生出其它類。若是一個密封類被指定爲其餘類 的基類,則會發生編譯時錯誤。密封類不能同時爲抽象類。
29
sealed 修飾符主要用於防止非有意的派生,可是它還能促使某些運行時優化。具體說 來,因爲密封類永遠不會有任何派生類,因此對密封類的實例的虛擬函數成員的調用可 以轉換爲非虛擬調用來處理。css