dotnet面試題集

1.C#中的委託是什麼?事件是不是一種委託?

委託是一種方法作爲參數代入另一種方法,也可以理解爲指向一個函數的引用。事件是一種特殊的委託。

2.請指出GAC的含義?

全局程序集的緩存

3.&&&的區別。

&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and

4.ASPNETASP相比,主要有哪些進步?

Asp是解釋性的,asp.net是編譯性的,可以有有效有前臺HTML代碼分離。

5.DataReaderDataset有什麼區別?

DataReader是隻能向前的只讀遊標,Dataset是內存中的表。

6.軟件開發過程一般有幾個階段?每個階段的作用?

需求分析,架構設計,代碼編寫,QA,部署

7.net中讀寫數據庫需要用到那些類?他們的作用?

DataSet:數據存儲器。
DataCommand:
執行語句命令。
DataAdapter:
數據的集合,用語填充。

8.Singleton如何寫設計模式? .net Remoting 的工作原理是什麼?

static屬性裏面new ,構造函數private

.net Remoting 的工作原理是服務器端向客戶端發送一個進程編號,一個程序域編號,以確定對象的位置。

9. 62-63=1 等式不成立,請移動一個數字(不可以移動減號和等於號),使得等式成立,如何移動?

62移動成26次方

10.ADONET相對於ADO等主要有什麼改進?

1:ado.net不依賴於ole db提供程序,而是使用.net託管提供的程序,2:不使用com3:不在支持動態遊標和服務器端遊 4:,可以斷開connection而保留當前數據集可用 5:強類型轉換 6:xml支持

11 接口和抽象類的區別是什麼?堆和棧的區別是什麼?如何區別重載方法?

棧是編譯期間就分配好的內存空間,因此你的代碼中必須就棧的大小有明確的定義;堆是程序運行期間動態分配的內存空間,你可以根據程序的運行情況確定要分配的堆內存的大小

不同的參數類型,不同的參數個數,不同的參數順序。

12如果在一個B/S結構的系統中需要傳遞變量值,但是又不能使用SessionCookieApplication,您有幾種方法進行處理?

QueryStringFormsAuthentication this.Server.Transfer

13描述一下C#中索引器的實現過程,是否只能根據數字進行索引?

可以用任意類型

14.CTSCLSCLR分別作何解釋?什麼是裝箱和拆箱?。

CTS通用語言系統。CLS:通用語言規範。CLR:公共語言運行庫。

15.什麼是受管制的代碼?.什麼是強類型系統?在.net中,配件的意思是?

unsafe:非託管代碼。不經過CLR運行。RTTI:類型識別系統。程序集。

16.常用的調用WebService的方法有哪些?

1.使用WSDL.exe命令行工具。2.使用VS.NET中的Add Web Reference菜單選項

17.簡要談一下您對微軟.NET 構架下remotingwebservice兩項技術的理解以及實際中的應用。

WS主要是可利用HTTP,穿透防火牆。而Remoting可以利用TCP/IP,二進制傳送提高效率。

18.如何處理幾十萬條併發數據?

用存儲過程或事務。取得最大標識的時候同時更新..注意主鍵不是自增量方式這種方法併發的時候是不會有重複主鍵的..取得最大標識要有一個存儲過程來獲取.

19.Session有什麼重大BUG,微軟提出了什麼方法加以解決?

iis中由於有進程回收機制,系統繁忙的話Session會丟失,可以用Sate serverSQL Server數據庫的方式存儲Session不過這種方式比較慢,而且無法捕獲SessionEND事件。

20.ADO.net中常用的對象有哪些?分別描述一下。成員變量和成員函數前加static的作用?

Connection 數據庫連接對像
Command
數據庫命令
DataReader
數據讀取器
DataSet
數據集

21.什麼是code-Behind技術。GC是什麼? 爲什麼要有GC? 描述一下ASPNET服務器控件的生命週期?

ASPX,RESXCS三個後綴的文件,這個就是代碼分離.實現了HTML代碼和服務器代碼分離.方便代碼編寫和整

GC是垃圾收集器。程序員不用擔心內存管理,因爲垃圾收集器會自動進行管理。要請求垃圾收集 ystem.gc()untime.getRuntime().gc()

初始化 加載視圖狀態 處理回發數據 加載發送回發更改通知 處理回發事件 預呈現 保存狀態 呈現 處置 卸載

22.String s = new String("xyz");創建了幾個String Object?

兩個對象,一個是“xyx”,一個是指向“xyx”的引用對像s

31.abstract classinterface有什麼區別?

聲明方法的存在而不去實現它的類被叫做抽像類(abstract class),它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變量,其類型是一個抽像類,並讓它指向具體子類的一個實例。不能有抽像構造函數或抽像靜態方法。Abstract 類的子類爲它們父類中的所有抽像方法提供實現,否則它們也是抽像類爲。取而代之,在子類中實現該方法。知道其行爲的其它類可以在類中實現這些方法。
接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現與子類相似,除了該實現類不能從接口定義中繼承行爲。當類實現特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然後,它可以在實現了該接口的類的任何對像上調用接口的方法。由於有抽像類,它允許使用接口名作爲引用變量的類型。通常的動態聯編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了接口。

39.啓動一個線程是用run()還是start()?
答:啓動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味着它可以由JVM調度並執行。這並不意味着線程就會立即運行。run()方法可以產生必須退出的標誌來停止一個線程。

40.接口是否可繼承接口? 抽像類是否可實現(implements)接口? 抽像類是否可繼承實體類(concrete class)?
答:接口可以繼承接口。抽像類可以實現(implements)接口,抽像類是否可繼承實體類,但前提是實體類必須有明確的構造函數。

41.構造器Constructor是否可被override?
答:構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading

45.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String?
答:switchexpr1)中,expr1是一個整型,字符或字符串,因此可以作用在bytelong上,也可以作用在string上。

77.什麼是ASP.net中的用戶控件?
答:用戶控件一般用在內容多爲靜態,或者少許會改變的情況下..用的比較大..類似ASP中的include..但是功能要強大的多。

78.列舉一下你所瞭解的XML技術及其應用
答:xml用於配置,用於保存靜態數據類型.接觸XML最多的是web Services..config

47.當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
不能,一個對象的一個synchronized方法只能由一個線程訪問。

48.abstractmethod是否可同時是static,是否可同時是native,是否可同時是synchronized?
答:都不能。

51.數組有沒有length()這個方法? String有沒有length()這個方法?
答:數組和string都沒有Length()方法,只有Length屬性。

52.sleep() wait() 有什麼區別?
答:sleep()
方法是將當前線程掛起指定的時間。
wait()
釋放對象上的鎖並阻塞當前線程,直到它重新獲取該鎖。

54.談談final, finally, finalize的區別。
答:final-修飾符(關鍵字)如果一個類被聲明爲final,意味着它不能再派生出新的子類,不能作爲父類被繼承。finally-再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會 執行,然後控制就會進入 finally 塊(如果有的話)。
finalize
-方法名。finalize() 方法是在垃圾收集器刪除對像之前對這個對象調用的。

62.請說明在.net中常用的幾種頁面間傳遞參數的方法,並說出他們的優缺點。
答:session(viewstate) 簡單,但易丟失
application
全局 cookie 簡單,但可能不支持,可能被僞造
input ttype="hidden"
簡單,可能被僞造
url
參數 簡單,顯示於地址欄,長度有限
數據庫 穩定,安全,但性能相對弱

67.c#usingnew這兩個關鍵字有什麼意義,請寫出你所知道的意義?using 指令 和語句 new 創建實例 new 隱藏基類中方法。
答:using 引入名稱空間或者使用非託管資源 new 新建實例或者隱藏父類方法

68.需要實現對一個字符串的處理,首先將該字符串首尾的空格去掉,如果字符串中間還有連續空格的話,僅保留一個空格,即允許字符串中間有多個空格,但連續的空格數不可超過一個.
答:
string inputStr=" xx xx ";
inputStr=Regex.Replace(inputStr.Trim()," *"," ");

70.什麼叫做SQL注入,如何防止?請舉例說明。
答:利用sql語言漏洞獲得合法身份登陸系統。如身份驗證的程序設計成:
SqlCommand com=new SqlCommand("Select * from users where username='"+t_name.text+"' and pwd='"+t_pwd.text+"'");
object obj=com.ExcuteScale();
if(obj!=null)
{ //
通過驗證}
這段代碼容易被sql注入。如用戶在t_name中隨便輸入,在t_pwd中輸入1' and 1='1 就可以進入系統了。

81.什麼是SOAP,有哪些應用。
:SOAPSimple Object Access Protocol )簡單對象訪問協議是在分散或分佈式的環境中交換信息並執行遠程過程調用的協議,是一個基於XML的協議。使用SOAP,不用考慮任何特定的傳輸協議(最常用的還是HTTP協議),可以允許任何類型的對象或代碼,在任何平臺上,以任何一直語言相互通信。這種相互通信採用的是XML格式的消息(SOAP消息只包含XML文本信息)

SOAP也被稱作XMLP,爲兩個程序交換信息提供了一種標準的工作機制。在各類機構之間通過電子方式相互協作的情況下完全有必要爲此制定相應的標準。SOAP描述了把消息捆綁爲XML的工作方式。它還說明了發送消息的發送方、消息的內容和地址以及發送消息的時間。SOAPWeb Service的基本通信協議。

SOAP 是一種輕量級協議,用於在分散型、分佈式環境中交換結構化信息。 SOAP 利用 XML 技術定義一種可擴展的消息處理框架,它提供了一種可通過多種底層協議進行交換的消息結構。 這種框架的設計思想是要獨立於任何一種特定的編程模型和其他特定實現的語義。最後SOAP規範還定義了HTTP消息是怎樣傳輸SOAP消息的。MSMQSMTPTCP/IP都可以做SOAP的傳輸協議。 

SOAP 定義了一種方法以便將 XML 消息從 A 點傳送到 B 點。 爲此,它提供了一種基於 XML 且具有以下特性的消息處理框架: 1) 可擴展, 2) 可通過多種底層網絡協議使用, 3) 獨立於編程模型。

82.C# property attribute的區別,他們各有什麼用處,這種機制的好處在哪裏?
答:一個是屬性,用於存取類的字段,一個是特性,用來標識類,方法等的附加性質

83.XML HTML 的主要區別
答:1. XML是區分大小寫字母的,HTML不區分。
2.
HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結尾,那麼你可以省略</p>或者</li>之類的結束 標記。在XML中,絕對不能省略掉結束標記。

3.
XML中,擁有單個標記而沒有匹配的結束標記的元素必須用一個 / 字符作爲結尾。這樣分析器就知道不用 查找結束標記了。

4.
XML中,屬性值必須分裝在引號中。在HTML中,引號是可用可不用的。

5.
HTML中,可以擁有不帶值的屬性名。在XML中,所有的屬性都必須帶有相應的值。

89.委託聲明的關鍵字是_ delegate

98..net的錯誤處理機制是什麼?
答:.net錯誤處理機制採用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch爲止。

99.利用operator聲明且僅聲明瞭==,有什麼錯誤麼?
答:要同時修改EqualeGetHash() ? 重載了"==" 就必須重載 "!="

106. C# property attribute的區別,他們各有什麼用處,這種機制的好處在哪裏?
答:attribute:自定義屬性的基類;property :類中的屬性

107.C#可否對內存進行直接的操作?
答:在.net下,.net引用了垃圾回收(GC)功能,它替代了程序員 不過在C#中,不能直接實現Finalize方法,而是在析構函數中調用基類的Finalize()方法

112.Static Nested Class Inner Class的不同,說得越多越好
答:Static Nested Class是被聲明爲靜態(static)的內部類,它可以不依賴於外部類實例被實例化。而通常的內部類需要在外部類實例化後才能實例化。

116.Overloaded的方法是否可以改變返回值的類型?
答:Overloaded的方法是可以改變返回值的類型。

117.errorexception有什麼區別?
答:error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。

exception
表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。

118.<%# %> <% %> 有什麼區別?
答:<%# %>表示綁定的數據源  <% %>是服務器端代碼塊

119.你覺得ASP.NET 2.0VS2005)和你以前使用的開發工具(.Net 1.0或其他)有什麼最大的區別?你在以前的平臺上使用的哪些開發思想(pattern / architecture)可以移植到ASP.NET 2.0 (或者已經內嵌在ASP.NET 2.0)
答:1 ASP.NET 2.0 把一些代碼進行了封裝打包,所以相比1.0相同功能減少了很多代碼. 2 同時支持代碼分離和頁面嵌入服務器端代碼兩種模式,以前1.0版本,.NET提示幫助只有在分離的代碼文件,無 法 在頁面嵌入服務器端代碼獲得幫助提示,3 代碼和設計界面切換的時候,2.0支持光標定位.這個我比較喜歡

4
在綁定數據,做表的分頁.UPDATE,DELETE,等操作都可以可視化操作,方便了初學者 5 ASP.NET中增加了40多個新的控件,減少了工作量

120.重載與覆蓋的區別?
答:1、方法的覆蓋是子類和父類之間的關係,是垂直關係;方法的重載是同一個類中方法之間的關係,是水平關係2、覆蓋只能由一個方法,或只能由一對方法產生關係;方法的重載是多個方法之間的關係。3、覆蓋要求參數列表相同;重載要求參數列表不同。4、覆蓋關係中,調用那個方法體,是根據對象的類型(對像對應存儲空間類型)來決定;重載關係,是根據調 用時的實參表與形參表來選擇方法體的。

130.abstract classinterface有什麼區別?
答:聲明方法的存在而不去實現它的類被叫做抽像類(abstract class),它用於要創建一個體現某些基本行爲的類,併爲該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。Abstract 類的子類爲它們父類中的所有抽像方法提供實現,否則它們也是抽像類爲。取而代之,在子類中實現該方法。知道其行爲的其它類可以在類中實現這些方法。

接口(interface)是抽像類的變體。在接口中,所有方法都是抽像的。多繼承性可通過實現這樣的接口而獲得。接口中的所有方法都是抽像的,沒有一個有程序體。接口只可以定義static final成員變量。instanceof 運算符可以用來決定某對象的類是否實現了接口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章