版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.net面試題選擇題1. 以下敘述正確的是:(BC) A. 接口中可以有虛方法B. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口C. 接口不能被實(shí)例化D. 接口中可以包含已實(shí)現(xiàn)的方法 2. 從數(shù)據(jù)庫讀取記錄,你可能用到的方法有:(BCD) A. ExecuteNonQueryB. ExecuteScalarC. FillD. ExecuteReader3. 以下關(guān)于ref和out的描述哪些項(xiàng)是正確的?(多選) (ACD) A. 使用ref參數(shù),傳遞到ref參數(shù)的參數(shù)必須最先初始化 B. 使用out參數(shù),傳遞到out參數(shù)的參數(shù)必須最先初始化 C. 使用ref參數(shù),必須將參數(shù)作為ref參數(shù)顯式傳遞到方法 D. 使用ou
2、t參數(shù),必須將參數(shù)作為out參數(shù)顯式傳遞到方法4. 在對(duì)SQL Server 數(shù)據(jù)庫操作時(shí)應(yīng)選用 (A) A. SQL Server .NET Framework 數(shù)據(jù)提供程序B. OLE DB .NET Framework 數(shù)據(jù)提供程序C. ODBC .NET Framework 數(shù)據(jù)提供程序D. Oracle .NET Framework數(shù)據(jù)提供程序5. 下列選項(xiàng)中,(C) 是引用類型A. enum類型B. struct類型C. string類型D. int類型6. 關(guān)于ASP.NET中的代碼隱藏文件的描述正確的是 (C)A. Web窗體頁的程序的邏輯由代碼組成,這些代碼的創(chuàng)建用于與窗體交
3、互。編程邏輯唯一與用戶界面不同的文件中。該文件稱作為代碼隱藏文件,如果用C創(chuàng)建,該文件將具有.ascx.cs擴(kuò)展名B. 項(xiàng)目中所有Web窗體頁的代碼隱藏文件都被編譯成.EXE文件C. 項(xiàng)目中所有的Web窗體頁的代碼隱藏文件都被編譯成項(xiàng)目動(dòng)態(tài)鏈接庫 (.dll)文件D. 以上都不正確7. 以下描述錯(cuò)誤的是 (A)A. 在C+中支持抽象類而在C#中不支持抽象類B. C+中可在頭文件中聲明類的成員而在CPP文件中定義類的成員,在C#中沒有頭文件并且在同一處聲明和定義類的成員C. 在C#中可使用 new 修飾符顯式隱藏從基類繼承的成員D. 在C#中要在派生類中重新定義基類的虛函數(shù)必須在前面加Overr
4、ide8. C#的數(shù)據(jù)類型有 (A)A. 值類型和調(diào)用類型; B. 值類型和引用類型;C. 引用類型和關(guān)系類型;D. 關(guān)系類型和調(diào)用類型;9. 下列描述錯(cuò)誤的是 (D)A. 類不可以多重繼承而接口可以B. 抽象類自身可以定義成員而接口不可以C. 抽象類和接口都不能被實(shí)例化D. 一個(gè)類可以有多個(gè)基類和多個(gè)基接口10. 下列關(guān)于構(gòu)造函數(shù)的描述正確的是 (C)A. 構(gòu)造函數(shù)可以聲明返回類型。B. 構(gòu)造函數(shù)不可以用private修飾C. 構(gòu)造函數(shù)必須與類名相同D. 構(gòu)造函數(shù)不能帶參數(shù)11. int myArray3=new int3new int35,6,2,new int56,9,7,8,3,new
5、 int23,2; myArray322的值是 (D)A. 9 B. 2 C. 6 D. 越界12. 接口是一種引用類型,在接口中可以聲明(A),但不可以聲明公有的域或私有的成員變量。A. 方法、屬性、索引器和事件B. 方法、屬性信息、屬性C. 索引器和字段D. 事件和字段13. ASP.NET框架中,服務(wù)器控件是為配合Web表單工作而專門設(shè)計(jì)的。服務(wù)器控件有兩種類型,它們是(A)A. HTML控件和Web控件 B. HTML控件和XML控件 C. XML控件和Web控件 D. HTML控件和IIS控件14. 在ADO.NET中,對(duì)于Command對(duì)象的ExecuteNonQuery()方法和
6、ExecuteReader()方法,下面敘述錯(cuò)誤的是 (C)。A. insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執(zhí)行B. ExecuteNonQuery()方法返回執(zhí)行Sql語句所影響的行數(shù)C. Select操作的Sql語句只能由ExecuteReader()方法來執(zhí)行D. ExecuteReader()方法返回一個(gè)DataReder對(duì)象15. 下列ASP.NET語句 (b)正確地創(chuàng)建了一個(gè)與SQL Server 2000數(shù)據(jù)庫的連接。A. SqlConnection con1 = new Connection(Data Source
7、 = localhost; Integrated Security = SSPI; Initial Catalog = myDB)B. SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB)C. SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB
8、)D. SqlConnection con1 = new OleDbConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB)16. 在ADO.NET中執(zhí)行一個(gè)存儲(chǔ)過程時(shí),如果要設(shè)置輸出參數(shù)則必須同時(shí)設(shè)置參數(shù)的方向和 (B),必要時(shí)還要設(shè)置參數(shù)尺寸A. 大??; B. 上限; C. 初始值; D. 類型;17. 要對(duì)注冊(cè)表進(jìn)行操作則必須包含(D)A. System.ComponentModel命名空間; B. System.Collections命名空間;C. System.Thr
9、eading命名空間; D. Microsoft.Win32命名空間;18. 裝箱、拆箱操作發(fā)生在: (C)A.類與對(duì)象之間 B.對(duì)象與對(duì)象之間C.引用類型與值類型之間 D.引用類型與引用類型之間19. 用戶類若想支持Foreach語句需要實(shí)現(xiàn)的接口是: (A)A.IEnumerable B.IEnumeratorC.ICollection D.ICollectData20. 裝箱與拆箱操作是否是互逆的操作?(B)A.是 B.否21. 用戶自定義異常類需要從以下哪個(gè)類繼承:(A)A.Exception B.CustomExceptionC.ApplicationException D.Base
10、Exception22. Net依賴以下哪項(xiàng)技術(shù)實(shí)現(xiàn)跨語言互用性?(C)A.CLR B.CTS C.CLS D.CTT23. 以下哪個(gè)類是int的基類?( b)A.Int32 B.Object C.ValueType D.Int1624. 以下哪些可以作為接口成員?(多選) (ABDE)A.方法 B.屬性 C.字段 D.事件 E.索引器 F.構(gòu)造函數(shù) G.析構(gòu)函數(shù)25. 訪問范圍限定于此程序或那些由它所屬的類派生的類型是對(duì)以下哪個(gè)成員可訪問性含義的正確描述?(B)A.public B.protected C.internal D.protected internal26. class Clas
11、s1private static int count = 0;static Class1()count+;public Class1()count+;Class1 o1 = new Class1();Class1 o2 = new Class1();請(qǐng)問,o1.Count的值是多少?(C)A.1 B.2 C.3 D.427. abstract class BaseClasspublic virtual void MethodA()public virtual void MethodB()class Class1 : BaseClasspublic void MethodA(string arg
12、)public override void MethodB()class Class2 : Class1new public void MethodB()class MainClasspublic static void Main(string args)Class2 o = new Class2();Console.WriteLine(o.MethodA();請(qǐng)問,o.MethodA調(diào)用的是: (A)A.BaseClass.MethodAB.Class2.MethodAC.Class1.MethodAD.都不是28. 您要?jiǎng)?chuàng)建一個(gè)顯示公司員工列表的應(yīng)用程序。您使用一個(gè)DataGrid控件顯示
13、員工的列表。您打算修改這個(gè)控件以便在這個(gè)Grid的Footer顯示員工合計(jì)數(shù)。請(qǐng)問您應(yīng)該怎么做?( C? )A.重寫OnPreRender事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。B.重寫OnItemCreated事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。 C.重寫OnItemDataBound事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。D. 重寫OnLayout事件,當(dāng)Grid的Footer行被創(chuàng)建時(shí)顯示合計(jì)數(shù)。29. 您要?jiǎng)?chuàng)建ASP.NET應(yīng)用程序用于運(yùn)行AllWin公司內(nèi)部的Web站點(diǎn),這個(gè)應(yīng)用程序包含了50個(gè)頁面。您想要配置這個(gè)應(yīng)用程序以便當(dāng)發(fā)生一個(gè)HTTP
14、代碼錯(cuò)誤時(shí)它可以顯示一個(gè)自定義的錯(cuò)誤頁面給用戶。您想要花最小的代價(jià)完成這些目標(biāo),您應(yīng)該怎么做?(多選)( CD ) A.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)Application_Error過程去處理ASP.NET代碼錯(cuò)誤。 B.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)applicationError節(jié)去處理ASP.NET代碼錯(cuò)誤。 C.在這個(gè)應(yīng)用程序的Global.asax文件中創(chuàng)建一個(gè)CustomErrors事件去處理HTTP錯(cuò)誤。 D.在這個(gè)應(yīng)用程序的Web.config文件中創(chuàng)建一個(gè)CustomErrors節(jié)去處理HTTP錯(cuò)誤。 E.在這個(gè)應(yīng)用程序的每一頁中添
15、加一個(gè)Page指示符去處理ASP.NET 代碼錯(cuò)誤。 F. 在這個(gè)應(yīng)用程序的每一頁中添加一個(gè)Page指示符去處理ASP.NET HTTP錯(cuò)誤。30. 您的公司有一個(gè)DB Server,名為AllWin,其上裝了MS SQLSERVER 2000?,F(xiàn)在需要您寫一個(gè)數(shù)據(jù)庫連接字符串,用以連接AllWin上SQL SERVER中的一個(gè)名為PubBase實(shí)例的Test庫。請(qǐng)問,應(yīng)該選擇下面哪一個(gè)字符串?( B ) A. “Server=AllWin;Data Source=PubBase;Initial Catalog=Test;Integrated Security=SSPI” B. “Server
16、= AllWin;Data Source=PubBase;Database=Test;Integrated Security= SSPI” C. “Data Source= AllWin PubBase;Initial Category=PubBase;Integrated Security= SSPI” D. “Data Source= AllWin PubBase;Database=Test;Integrated Security= SSPI”31. 您要?jiǎng)?chuàng)建一個(gè)ASP.NET應(yīng)用程序在DataGrid控件中顯示一個(gè)經(jīng)過排序的列表。產(chǎn)品數(shù)據(jù)被存放于一個(gè)名為PubBase的Microsoft
17、 SQL Server 數(shù)據(jù)庫。每個(gè)產(chǎn)品的主鍵是ProductID,Numeric型并且每個(gè)產(chǎn)品有一個(gè)字母描述字段,名為ProductName。您使用一個(gè)SqlDataAdapter對(duì)象和一個(gè)SqlCommand對(duì)象通過調(diào)用一個(gè)存儲(chǔ)過程從數(shù)據(jù)庫中獲取產(chǎn)品數(shù)據(jù)。您將SqlCommand對(duì)象的CommandType屬性設(shè)置為CommandType.StoredProcedure,并將它的CommandText屬性設(shè)置為procProductList。您成功的獲取了一個(gè)DataTable對(duì)象,其中是已經(jīng)按ProductID降序排列的產(chǎn)品列表。您打算顯示以相反的字母順序排列的ProductName,請(qǐng)
18、問該怎么做? ( B ) A. 將SqlCommand對(duì)象的CommandType屬性修改為CommandType.Text,將CommandText屬性修改為”SELECT * FROM procProductList ORDER BY ProductName DESC”。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 B. 創(chuàng)建一個(gè)基于這個(gè)DataTable對(duì)象的新的DataView并將這個(gè)DataView的Sort屬性設(shè)置為“ProductName DESC”。然后將這個(gè)DataView對(duì)象綁定到DataGrid控件。 C. 將DataGrid控件的AllowSorting
19、屬性設(shè)置為True,并將DataGridColumn的SortExpression屬性設(shè)置為 “ProductName DESC”.以顯示ProductName。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 D. 將DataTable對(duì)象的DisplayExpression屬性設(shè)置為 “ORDER BY ProductName DESC”.。然后將這個(gè)DataTable對(duì)象綁定到DataGrid控件。 32. 對(duì)于一個(gè)實(shí)現(xiàn)了IDisposable接口的類,以下哪些項(xiàng)可以執(zhí)行與釋放或重置非托管資源相關(guān)的應(yīng)用程序定義的任務(wù)?(多選) ( ABC )A.Close B.Dispose
20、C.FinalizeD.using E.Quit33. 下面有關(guān)用戶控件與aspx頁面區(qū)別說法錯(cuò)誤的是(B)A. 用戶控件不能再包含標(biāo)記,而aspx頁面可以包含B. 用戶控件不能觸發(fā)服務(wù)器端的事件,只是一種外觀重用方式,而aspx頁面可以C. 用戶控件繼承自System.Web.UI.UserControl,而aspx頁面繼承自System.Web.UI.PageD. 用戶控件可以包含其它用戶控件,但是不能直接訪問,必須包含在某個(gè)aspx頁面中才可以訪問,而aspx頁面是可以直接訪問的34. 想在在aspx頁面使用用戶控件,則aspx頁面開始部分必須添加下面哪個(gè)頁面指令A(yù)A. B. C. D.
21、 35. 根據(jù)你的理解,你認(rèn)為第三控件與用戶控件的主要區(qū)別是AA. 第三方控件是編譯后的代碼,后綴為dll,只要應(yīng)用程序引用進(jìn)來,就可以使用,而用戶控件是頁面文件,屬于非編譯代碼,只限于在當(dāng)前應(yīng)用程序中使用B. 用戶控件比第三方控件更靈活,可以在應(yīng)用程序中多個(gè)地方使用C. 用戶控件出現(xiàn)在工具箱中,而第三方控件不會(huì)出現(xiàn)在工具箱中D. 用戶控件比第三方控件的執(zhí)行效率要高一些36. 下面關(guān)于HttpHandler與HttpModule說法正確的是CA. 一個(gè)Http請(qǐng)求中可以經(jīng)歷多個(gè)HttpModule和一個(gè)HttpHandlerB. 一個(gè)Http請(qǐng)求中可以經(jīng)歷多個(gè)HttpHandler和一個(gè)Htt
22、pModuleC. HttpModule是一個(gè)Http請(qǐng)求的最終處理者D. HttpHandler通常做一些停止數(shù)據(jù)向客戶端輸出的操作37. 在aSPNET中,關(guān)于HttpHandler說法不正確的是:(D)A. 通常文件后綴名為ashxB. 它是一個(gè)Http請(qǐng)求處理的最終點(diǎn)C. 它實(shí)現(xiàn)了IHttpHandlerD. 當(dāng)它的IsReusable屬性為false時(shí),表示只能使用一次38. 下面哪個(gè)選項(xiàng)不能在web.config文件中配置的(C)A. 連接字符串B. 身份驗(yàn)證C. 網(wǎng)站導(dǎo)航D. 程序出現(xiàn)錯(cuò)誤時(shí),定向到的錯(cuò)誤提示頁面39. aSPNET支持三種驗(yàn)證方式,不屬于其中的是(B)A. pa
23、ssportB. SqlServer身份C. WindowsD. Forms40. 在網(wǎng)站某個(gè)目錄的web.config配置文件中,有一段關(guān)于該目錄授權(quán)的代碼,經(jīng)過分析,你認(rèn)為正確的答案是:B 拒絕所有匿名用戶 容許xiazhang 拒絕所有用戶A. 所有用戶都可以訪問該網(wǎng)站目錄,除xiaozhang以外B. 所有用戶都不能訪問該網(wǎng)站目錄,除xiaozhang以外C. 匿名用戶和xiaozhang都不能訪問該網(wǎng)站目錄D. 所有角色和用戶都不能訪問該網(wǎng)站目錄41. 已知在網(wǎng)站的根目錄下有一個(gè)web.config文件,有如下關(guān)于驗(yàn)證的代碼,正確說法的是BA. loginUrl的作用是,當(dāng)用戶登錄不
24、成功時(shí),轉(zhuǎn)向login.aspx頁面B. loginUrl的作用是,當(dāng)用戶進(jìn)入網(wǎng)站如果未登錄,就轉(zhuǎn)向login.aspx頁面C. timeout是超過20分鐘不登錄,就退出網(wǎng)站D. timeout的作用是當(dāng)20分鐘后,用戶還沒有登錄,就轉(zhuǎn)向login.aspx頁面42. 下列關(guān)于部署的說法,正確的是(a d)A. 部署就是將站點(diǎn)文件復(fù)制到相關(guān)web目錄中B. 應(yīng)該在本地站點(diǎn)將內(nèi)容處理好,比如數(shù)據(jù)庫連接字符串設(shè)置好并加密,然后直接復(fù)制到站點(diǎn)到遠(yuǎn)程服務(wù)器相關(guān)目錄即可C. 發(fā)布預(yù)編譯站點(diǎn),如果將來需要更新某個(gè)頁面,最好不要選擇使用”使用固定命名和單頁程序集”D. 發(fā)布預(yù)編譯站點(diǎn)就是將站點(diǎn)所有文件都編
25、譯到dll中43. 下列(c)模板不屬于Repeater控件A. ItemTemplateB. alternatingItemTemplateC. SelectedItemTamplateD. SeparatorTemplate44. 在一個(gè)aspx頁面的Page_Load事件中,編寫了如下代碼,則執(zhí)行該頁面后,將在頁面中輸出(a)。private void Page_Load(object sender , System.Eventargs e)Response . Write(“歡迎光臨”);Response . End();Response . Write(“歡迎下次光臨”);A. 歡迎
26、光臨B. 歡迎下次光臨C. 歡迎光臨D. 歡迎下次光臨E. 歡迎光臨歡迎下次光臨45. 在aSP.NET中,下列關(guān)于session對(duì)象的說法正確的是(D)。(選擇一項(xiàng))A. 用戶每次打開一個(gè)web頁面,將會(huì)創(chuàng)建一個(gè)session對(duì)象B. 用戶關(guān)閉客戶端web頁面后,session對(duì)象將立即消失C. 應(yīng)用程序退出后,session對(duì)象的值才能消失D. 每個(gè)用戶的Session對(duì)象不能被其他用戶訪問46. 在aSP.NET中,為了將當(dāng)前頁面跳轉(zhuǎn)到一個(gè)相同目錄下名為Main.htm的頁面,下面方法正確的是(C)。(選擇一項(xiàng))A. Server.Execute(“Main.htm”);B. Servl
27、et.Transfer(“Main.htm”);C. Response.Redirect(“Main.htm”);D. Response.Write(“Main.htm”);47. 某個(gè)用ASP.NET技術(shù)開發(fā)的網(wǎng)站擁有大量的訪問量,最近該網(wǎng)經(jīng)常因?yàn)榉?wù)器內(nèi)存占用率過高而宕機(jī),作為該網(wǎng)站技術(shù)員的你仔細(xì)檢查了該網(wǎng)站的系統(tǒng),發(fā)現(xiàn)內(nèi)存占有率過高是因?yàn)槊總€(gè)用戶都有大量數(shù)據(jù)保存在Session中,為了解決該問題你應(yīng)該進(jìn)行(C)處理。(選擇一項(xiàng))A. 將保存在Session中的數(shù)據(jù)保存在application中B. 將保存在Session中的數(shù)據(jù)保存在Cookie中C. 將Session中對(duì)安全性要求不高
28、的數(shù)據(jù)保存在Cookie中,不經(jīng)常使用的數(shù)據(jù)保存在數(shù)據(jù)庫中D. 將Session中對(duì)安全性要求不高的數(shù)據(jù)保存在application中,不經(jīng)常使用的數(shù)據(jù)保存在Cookie中48. 如果用戶信息必須填寫電話號(hào)碼,使用那個(gè)驗(yàn)證控件(C)A. RequiredFieldValidatorB. REgularExpressionC. RequiredFieldValidator和regularExpression;D. CompareValidator和RequiredFieldValidator;49. 對(duì)于存儲(chǔ)過程的調(diào)用,應(yīng)該出現(xiàn)在(C)層A. 表示層B. 業(yè)務(wù)邏輯層C. 數(shù)據(jù)訪問層D. 模型層5
29、0. 下列說法正確的是(AB) 選擇二項(xiàng)A. 數(shù)據(jù)訪問層要添加模型層的引用B. 業(yè)務(wù)邏輯層要添加數(shù)據(jù)訪問層的引用C. 表示層要添加數(shù)據(jù)訪問層業(yè)務(wù)邏輯層和模型層的引用D. 模型層要添加數(shù)據(jù)訪問層的引用填空題1. 面向?qū)ο蟮恼Z言具有_性、_性、_性./ 封裝、繼承、多態(tài)2. String s = new String(xyz);創(chuàng)建了_個(gè)String Object?/23. float f=-123.567F; int i=(int)f;i的值現(xiàn)在是_?/-1234. 委托聲明的關(guān)鍵字是_?/delegate5. 在.Net托管代碼中我們不用擔(dān)心內(nèi)存漏洞,這是因?yàn)橛辛薩/gc6. 下面的例子中us
30、ing System;class Apublic static int X;static A()X=B.Y+1;class Bpublic static int Y=A.X+1;static B()static void Main()Console.WriteLine(X=0,Y=1,A.X,B.Y);產(chǎn)生的輸出結(jié)果是_/ x=1,y=27. 用sealed修飾的類有什么特點(diǎn)?_/不可被繼承8. 在.Net中所有可序列化的類都被標(biāo)記為_/serializable9. 啟動(dòng)一個(gè)線程是用run()還是start()?_/start()10. Class可以被實(shí)例化,屬于_類型,是分配在內(nèi)存的_上的
31、,Struct屬于_類型,是分配在內(nèi)存的_上的./ 引用, 堆, 值, 棧11. :表示_,是_/綁定的數(shù)據(jù)源,服務(wù)器端代碼塊簡答題1.GC是什么,簡述一下GC的工作方式?垃圾回收(garbage collectionDot Net的垃圾回收可以分為兩個(gè)步驟,第一步進(jìn)行“標(biāo)記”,垃圾回收器假設(shè)所有的對(duì)象都是垃圾,然后開始遍歷每一個(gè)“根”(根包含指向引用類型對(duì)象的一個(gè)指針,值類型對(duì)象永遠(yuǎn)不會(huì)被認(rèn)為是一個(gè)根),如果發(fā)現(xiàn)一個(gè)根引用了一個(gè)對(duì)象(非NULL),就對(duì)對(duì)象進(jìn)行標(biāo)記。沒有被標(biāo)記的對(duì)象被認(rèn)為是垃圾。第二個(gè)階段就是“壓縮”,其實(shí)就是將后面的對(duì)象移動(dòng)到已經(jīng)成為垃圾的對(duì)象位置,使得原來的托管堆更為緊湊
32、。從而釋放了托管堆。GC類中的方法影響何時(shí)對(duì)對(duì)象進(jìn)行垃圾回收以及何時(shí)釋放對(duì)象所分配的資源。此類中的屬性提供以下信息:系統(tǒng)可用內(nèi)存總量、分配給對(duì)象的內(nèi)存的周期類別(代)。GC跟蹤并回收托管內(nèi)存中分配的對(duì)象。垃圾回收器定期執(zhí)行垃圾回收以回收分配給沒有有效引用的對(duì)象的內(nèi)存。當(dāng)使用可用內(nèi)存不能滿足內(nèi)存請(qǐng)求時(shí),垃圾回收會(huì)自動(dòng)進(jìn)行?;蛘?,應(yīng)用程序可以使用 Collect 方法強(qiáng)制進(jìn)行垃圾回收。垃圾回收由以下步驟組成: GC搜索托管代碼中引用的托管對(duì)象。GC嘗試完成沒有被引用的對(duì)象。GC釋放沒有被引用的對(duì)象并回收它們的內(nèi)存。在回收期間,如果GC在托管代碼中找到對(duì)某對(duì)象的一個(gè)或多個(gè)引用,則不會(huì)釋放該對(duì)象。然而
33、,GC不識(shí)別非托管代碼中對(duì)對(duì)象的引用,因此,除非明確禁止,否則它有可能釋放非托管代碼中以獨(dú)占方式使用的對(duì)象。KeepAlive 方法提供一種機(jī)制,該機(jī)制可防止垃圾回收器回收在非托管代碼中仍使用的對(duì)象。2.在.NET程序運(yùn)行過程中,什么是堆,什么是棧?什么情況下會(huì)在堆(棧)上分配數(shù)據(jù)?它們有性能上的區(qū)別嗎?堆也就是托管堆(managed heap),進(jìn)程初始化的時(shí)候,CLR要保留一塊連續(xù)的地址空間,這個(gè)地址空間最初并沒有對(duì)應(yīng)的物理存儲(chǔ)空間。這個(gè)地址空間就是托管堆。棧是在程序運(yùn)行過程中用于保存指令,值類型變量的內(nèi)存區(qū)域(一個(gè)線程對(duì)應(yīng)一個(gè)棧),棧的結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)中“?!钡慕Y(jié)構(gòu)是一樣的,“先進(jìn)后出”。
34、值類型在棧上分配,引用類型在堆上分配。由于在棧上分配數(shù)據(jù)不受垃圾回收的控制,不存在垃圾回收的各種開銷,應(yīng)用程序執(zhí)行的時(shí)候垃圾回收的次數(shù)也會(huì)少很多,所以棧上分配顯然要比堆上分配性能上好。由于在棧上分配的變量已經(jīng)包含了實(shí)例的字段所以不需要一個(gè)指針指向它。空間上的開銷也較小。3.異常的作用是什么?.NET BCL中有哪些常見的異常?在代碼中您是如何捕獲/處理異常的?在“catch (ex)”中,“throw”和“throw ex”有什么區(qū)別?您會(huì)如何設(shè)計(jì)異常的結(jié)構(gòu),什么情況下您會(huì)拋出異常?異常用于處理系統(tǒng)級(jí)或者應(yīng)用程序級(jí)的錯(cuò)誤狀態(tài)。這就會(huì)引發(fā)另外幾個(gè)問題,異常相比原來使用的返回錯(cuò)誤代碼的優(yōu)點(diǎn)在哪里?
35、異常處理是一種結(jié)構(gòu)化的處理過程,個(gè)人認(rèn)為他最大的優(yōu)點(diǎn)就在于將“成功場景”剝離出來,使得代碼更加清晰自然。但是異常處理相對(duì)于返回錯(cuò)誤碼有一個(gè)缺點(diǎn),那就是他會(huì)失去發(fā)生異常的位置。不過異常本身提供了很多幫助調(diào)試問題的工具,一般都帶有棧跟蹤,這樣位置的問題就得到一定程度的解決。還有就是IF和異常之間的選擇,我記得以前有人討論過在各種分支下是使用異常來處理各種“失敗場景”的分支還是使用IF或者SWITCH來處理呢?這其實(shí)是一個(gè)假問題,因?yàn)楫惓:湾e(cuò)誤是有概念上的不同的,這里的錯(cuò)誤是指有違“主成功場景”的“異常場景”,爾異常是指當(dāng)程序不能完成其名字所表示功能時(shí)的錯(cuò)誤。所以需要強(qiáng)調(diào)不要使用異常來區(qū)分各種失敗場
36、景,異常壓根就不是用來干這件事情的!.NET BCL中有哪些常見的異常?隨便說幾個(gè),最著名的恐怕就是那句像繞口令一樣的“未將對(duì)象引用設(shè)置到對(duì)象實(shí)例”了,還有那些基本一出現(xiàn)整個(gè)應(yīng)用程序就被判死刑的“堆棧溢出”、“內(nèi)存無法分配”異常了。在“catch (ex)”中,“throw”和“throw ex”有什么區(qū)別?throw 重新拋出異常但是不破壞異常發(fā)生的調(diào)用棧爾“throw ex”會(huì)重置調(diào)用棧這樣捕獲異常的人會(huì)以為代碼出錯(cuò)在這里。您會(huì)如何設(shè)計(jì)異常的結(jié)構(gòu),什么情況下您會(huì)拋出異常?首先我會(huì)盡量的使用系統(tǒng)定義的那些異常,如果我需要處理某一特定類別的異常,而且處理方式和通常處理方式不同那么就考慮自定義異
37、常,還有如果需要調(diào)用方用一種統(tǒng)一的方式來處理異常那么自定義異常就是一個(gè)好的選擇。結(jié)構(gòu)的話當(dāng)然基類是Sysytem.Exception,盡量使用扁平化異常的層次??梢钥紤]用泛型類來定義異常。4. 緩存有什么作用?ASP.NET的緩存分為哪3種?應(yīng)用程序緩存又分為哪4種?簡單說下你在項(xiàng)目中所用的緩存。作用:把訪問頻繁的數(shù)據(jù)以及需要大量處理時(shí)間來創(chuàng)建的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,當(dāng)用戶請(qǐng)求這些數(shù)據(jù)時(shí),系統(tǒng)直接將內(nèi)存中的數(shù)據(jù)返回給用戶,從而大大提高應(yīng)用程序的性能.ASD.NET的緩存分為:整頁緩存、頁面部分緩存和應(yīng)用程序緩存應(yīng)用程序緩存分:定時(shí)緩存、滑動(dòng)緩存、文件依賴緩存和數(shù)據(jù)庫依賴緩存常用的緩存 Cache
38、它有健全的依賴和過期策略5.請(qǐng)解釋你對(duì)ADO.NET中的事物處理的理解。在ADO.NET中定義一個(gè)事物,需要用到SqlTransaction命令,在這一命令之后的任何語句都被認(rèn)為是事物的一部分。命令Commit用于完成事物,并使事物對(duì)數(shù)據(jù)庫所作的任何修改成為永久的。Rollback命令用于取消一個(gè)事物,并還原事物對(duì)數(shù)據(jù)庫所作的修改。6.請(qǐng)說出viewState的優(yōu)缺點(diǎn),什么情況下應(yīng)該避免使用viewState。優(yōu)點(diǎn):實(shí)現(xiàn)過程簡單;數(shù)據(jù)再頁面中自動(dòng)維護(hù),不需要耗費(fèi)服務(wù)資源;數(shù)據(jù)經(jīng)過加密和壓縮,比hidden field有更高的的安全性;數(shù)據(jù)存儲(chǔ)不受時(shí)間的限制。缺點(diǎn):不能跨頁面操作; 存儲(chǔ)大數(shù)據(jù)量
39、時(shí)會(huì)降低性能; 在客戶端儲(chǔ)存數(shù)據(jù)仍然有潛在的安全威脅。不要回送的頁面避免使用,避免使用viewState保存大數(shù)據(jù)量,因?yàn)関iewState沒有超時(shí)操作,所以在需要使用會(huì)話超時(shí)的情況下應(yīng)該避免使用。7. 簡述ASP.NET的頁面運(yùn)行機(jī)制當(dāng)每次請(qǐng)求ASP.NET頁面時(shí),依據(jù)不同的情況,瀏覽器、服務(wù)器、ASP.NET引擎之間將執(zhí)行4條線路中的一條線路,4條線路是:1) 當(dāng)?shù)谝淮卧L問頁面時(shí),頁面請(qǐng)求首先依次經(jīng)過HttpModuls和HttpHandler的處理,服務(wù)器接收到HttpHandler的請(qǐng)求后將跳轉(zhuǎn)到需要訪問的頁面,然后ASP.NET引擎負(fù)責(zé)找到這個(gè)頁面后臺(tái)的類,并實(shí)例化為一個(gè)臨時(shí)對(duì)象。在
40、此過程中會(huì)觸發(fā)一系列的事件。其中,一部分事件需要經(jīng)過對(duì)象中的方法進(jìn)行處理,之后服務(wù)器會(huì)將這個(gè)處理后頁面移交給Response對(duì)象,然后由Response對(duì)象將這個(gè)頁面發(fā)送到客戶端。這是第一條路線。2) 因?yàn)榉?wù)器之間的會(huì)話已經(jīng)建立,在服務(wù)器中的臨時(shí)對(duì)象已經(jīng)建立,所以在這個(gè)頁面上重新提交一些信息并再次向服務(wù)器發(fā)送請(qǐng)求時(shí),是不用再經(jīng)過初始化頁面這一部分工作的。故這第二條路線是依次提交HttpModuls、HttpHandler請(qǐng)求,然后直接與臨時(shí)對(duì)象交互并返回的。3) 第三條路線與第二條路線的不同之處在于,在處理請(qǐng)求時(shí),如果涉及到需要調(diào)用ASP.NET緩存,臨時(shí)對(duì)象將直接從ASP.NET緩存提取信
41、息并返回。4) 第四條路線是在刷新頁面的時(shí)候,服務(wù)器接收到并發(fā)現(xiàn)這個(gè)請(qǐng)求曾經(jīng)處理過,并將處理結(jié)果存儲(chǔ)到由一個(gè)默認(rèn)的HttpModule管理的輸出緩存中。那么,此時(shí)就可以直接從這個(gè)緩存中提取信息并返回,而無需再重新處理一遍。了解ASP.NET頁面的內(nèi)部運(yùn)行機(jī)制,對(duì)于編寫、調(diào)試代碼的時(shí)候有方便之處。8.簡述 ASP.NET一個(gè)頁面的生命周期在ASP.NET的頁面生命周期中需要經(jīng)歷Page_Init、LoadViewState、LoadPageData、Page_Load、RaisePostDataChanged、RaisePostDataChanged、RaisePostBackEvent、Page_PreRender、SaveViewState、Page_Render、UnLoad這10個(gè)事件。每一個(gè)ASP.NET頁面周期,都經(jīng)歷著同樣的過程:從初始化對(duì)象到銷毀對(duì)象。9.什么是反射?如何實(shí)現(xiàn)反射?反射則提供了封裝程序集、模塊和類型的對(duì)象。您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年節(jié)日慶典宣傳品批量采購合同2篇
- 2025年暑期大學(xué)生兼職項(xiàng)目合作協(xié)議書3篇
- 2025年牙科產(chǎn)品市場營銷與推廣合同模板3篇
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫實(shí)驗(yàn)班
- 2025年度個(gè)人二手房購房合同范本及裝修款項(xiàng)分期支付協(xié)議2篇
- CEEM《全球智庫半月談》總第295期
- 銀山路施工方案審查
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫附答案【模擬題】
- 音響安裝施工方案
- 2024年中級(jí)經(jīng)濟(jì)師考試題庫含完整答案
- 專升本英語閱讀理解50篇
- 施工單位值班人員安全交底和要求
- 中國保險(xiǎn)用戶需求趨勢洞察報(bào)告
- 數(shù)字化轉(zhuǎn)型指南 星展銀行如何成為“全球最佳銀行”
- 中餐烹飪技法大全
- 靈芝孢子油減毒作用課件
- 現(xiàn)場工藝紀(jì)律檢查表
- 醫(yī)院品管圈與護(hù)理質(zhì)量持續(xù)改進(jìn)PDCA案例降低ICU病人失禁性皮炎發(fā)生率
- 新型電力系統(tǒng)研究
- 烘干廠股東合作協(xié)議書
- 法院服務(wù)外包投標(biāo)方案(技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論