2022年程序員常見面試題_第1頁
2022年程序員常見面試題_第2頁
2022年程序員常見面試題_第3頁
2022年程序員常見面試題_第4頁
2022年程序員常見面試題_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、程序員常會面試題一、 C#1 請解釋在new 與override的區別?在 C# 中,new 核心字可用作運算符或修飾符。 new 運算符用于在堆上創立對象和調用構造函數。 new 修飾符用于隱藏基類成員的繼承成員。使用 override 修飾符來修改措施、屬性、索引器或事件。重寫措施提供從基類繼承的成員的新實現。由重寫聲明重寫的措施稱為重寫基措施。重寫基措施必須與重寫措施具有相似的簽名。不能重寫非虛措施或靜態措施。重寫基措施必須是虛擬的、抽象的或重寫的。重寫聲明不能更改虛措施的可訪問性。重寫措施和虛措施必須具有相似的訪問級修飾符。不能使用下列修飾符修改重寫措施:new static virt

2、ual abstract重寫屬性聲明必須指定與繼承屬性完全相似的訪問修飾符、類型和名稱,并且重寫屬性必須是虛擬的、抽象的或重寫的。2 請解釋virtual的含義?virtual 核心字用于修改措施或屬性的聲明,在這種狀況下,措施或屬性被稱作虛擬成員。虛擬成員的實現可由派生類中的重寫成員更改。調用虛措施時,將為重寫成員檢查該對象的運營時類型。將調用大部分派生類中的該重寫成員,如果沒有派生類重寫該成員,則它也許是原始成員。默認狀況下,措施是非虛擬的。不能重寫非虛措施。不能將 virtual 修飾符與如下修飾符一起使用:static abstract override除了聲明和調用語法不同外,虛擬屬

3、性的行為與抽象措施同樣。 在靜態屬性上使用 virtual 修飾符是錯誤的。 通過涉及使用 override 修飾符的屬性聲明,可在派生類中重寫虛擬繼承屬性3 請解釋.net采用委托實現的事件模型與JAVA中采用接口實現的事件模型有什么區別,以圖示方式解釋。4 請解釋接口的顯式實既有什么意義?接口是其她類型為保證它們支持某些操作而實現的引用類型。接口從不直接創立并且沒有實際的表達形式,其她類型必須轉換為接口類型。一種接口定義一種協定。實現接口的類或構造必須遵守其協定。接口可以涉及措施、屬性、索引器和事件作為成員。5 請以圖示方式解釋.net framework?VBC+C#JScriptCom

4、mon Language SpecificationXML WebservicesWeb Forms Windows FormsData and XMLBase Class Library CLR CLIVisual Studio .NET6.什么是.net?.net是一種平臺和框架, .net 不是單純的語言也不是單純的工具,它是從底層平臺開始構建起來的一種整體框架6 Ref 與out有什么不同?措施參數上的 ref 措施參數核心字使措施引用傳遞到措施的同一種變量。當控制傳遞回調用措施時,在措施中對參數所做的任何更改都將反映在該變量中。若要使用 ref 參數,必須將參數作為 ref 參數顯式

5、傳遞到措施。ref 參數的值被傳遞到 ref 參數。傳遞到 ref 參數的參數必須最先初始化。將此措施與 out參數相比,后者的參數在傳遞到 out 參數之前不必顯式初始化。屬性不是變量,不能作為 ref 參數傳遞。如果兩種措施的聲明僅在它們對 ref 的使用方面不同,則將浮現重載。但是,無法定義僅在 ref 和 out 方面不同的重載。措施參數上的 out 措施參數核心字使措施引用傳遞到措施的同一種變量。當控制傳遞回調用措施時,在措施中對參數所做的任何更改都將反映在該變量中。當但愿措施返回多種值時,聲明 out 措施非常有用。使用 out 參數的措施仍然可以返回一種值。一種措施可以有一種以上

6、的 out 參數。若要使用 out 參數,必須將參數作為 out 參數顯式傳遞到措施。out 參數的值不會傳遞到 out 參數。不必初始化作為 out 參數傳遞的變量。然而,必須在措施返回之前為 out 參數賦值。屬性不是變量,不能作為 out 參數傳遞。如果兩個措施的聲明僅在 out 的使用方面不同,則會發生重載。但是,無法定義僅在 ref 和 out 方面不同的重載。7 值類型與引用類型有什么不同?請舉例闡明?并分別列舉幾種相應的數據類型。大多數編程語言提供內置的數據類型(例如整數和浮點數),這些數據類型會在作為參數傳遞時被復制(即,它們通過值來傳遞)。在 .NET Framework 中

7、,這些稱為值類型。您可以創立值類型的實例,將它們作為參數傳遞,將它們存儲為局部變量,或將它們存儲在另一值類型或對象的字段中。值類型沒有與存儲類的實例有關的系統開銷,并且它們不需要構造函數。值類型可以有字段、屬性和事件。它們也有靜態和非靜態措施。當它們被裝箱時,會從 System.ValueType 繼承虛措施,并可實現零個或更多接口。值類型是密封的,這意味著不能從它們派生出其她類型。但是,可以直接對值類型定義虛措施,并且既可對該類型的已裝箱形式,也可對未裝箱形式調用這些措施。盡管不能從一種值類型派生出另一種類型,但是當所用語言解決虛措施比解決非虛措施或靜態措施更以便時,可以對值類型定義虛措施。

8、引用類型的變量又稱為對象,可存儲對實際數據的引用。如下用于聲明引用類型的核心字: class interface delegate8 構造體是值類型還是引用類型的?是值類型。9 C#中有無靜態構造函數,如果有是做什么用的?有. 靜態構造函數用于初始化類。在創立第一種實例或引用任何靜態成員之前,將自動調用靜態構造函數來初始化類。靜態構造函數既沒有訪問修飾符,也沒有參數。在創立第一種實例或引用任何靜態成員之前,將自動調用靜態構造函數來初始化類。無法直接調用靜態構造函數。在 HYPERLINK 程序中,顧客無法控制何時執行靜態構造函數。靜態構造函數的典型用途是:當類使用日記文獻時,將使用這種構造函數

9、向日記文獻中寫入項。10 在C#中如何實現多態?多態性指定義具有功能不同但名稱相似的措施或屬性的多種類的能力,這些類可由客戶端代碼在運營時互換使用。大部分面向對象的編程系統都通過繼承提供多態性。基于繼承的多態性波及在基類中定義措施并在派生類中使用新實現重寫它們。11 什么是反射?如何實現反射?反射則提供了封裝 HYPERLINK 程序集、模塊和類型的對象。您可以使用反射動態地創立類型的實例,將類型綁定到既有對象,或從既有對象中獲取類型。然后,可以調用類型的措施或訪問其字段和屬性。通過反射命名空間中的類以及 System.Type,您可以獲取有關已加載的 HYPERLINK 程序集和在其中定義的

10、類型(如類、接口和值類型)的信息。您也可以使用反射在運營時創立類型實例,然后調用和訪問這些實例。12 請解釋流與文獻有什么不同?文獻是某些具有永久存儲及特定順序的字節構成的一種有序的、具有名稱的集合。因此,對于文獻,人們常會想到目錄途徑、磁盤存儲、文獻和目錄名等方面。相反,流提供一種向后備存儲器寫入字節和從后備存儲器讀取字節的方式,后備存儲器可覺得多種存儲媒介之一。正如除磁盤外存在多種后備存儲器同樣,除文獻流之外也存在多種流。例如,還存在網絡流、內存流和磁帶流等。13 HYPERLINK 程序集與命名空間有什么不同?命名空間是用于避免命名沖突,專用于組織代碼,現代碼要在其她某個應用 HYPER

11、LINK 程序中重用時,可以減少復雜性。 HYPERLINK 程序集是重用代碼的一種方式不同: 可以將相似命名空間中的類部署到不同的 HYPERLINK 程序集中,也可以命名空間中的類部署到一種 HYPERLINK 程序集中命名空間 HYPERLINK 程序集有邏輯編譯時機制 有物理編譯時機制不是運營時實體 是運營時實體為源代碼元素的名稱提供邏輯構造 為可執行文獻的運營時提供物理構造14 請編寫一種捕獲所有錯誤的錯誤解決代碼1516 Try17 18 catch(Exception e)19 委托與事件是什么關系?為什么要使用委托o委托提供了封裝措施的方式,事件是某動作已發生的闡明,事件是建立

12、于委托之上的o HYPERLINK 程序運營時同一種委托可以用來調用不同的措施只要變化它的引用措施即可o同一種委托可以用來調用不同的措施,只要變化它引用的措施即可,因此委托調節器用的措施不是在編譯時決定的,而是在運營時擬定的.20 一種類中有幾種元素?類由字段,屬性,措施構成21 請解釋這種語法現象Sessionname=20;給類的索引器賦值.22 裝箱與取消裝箱是什么含義?裝箱是值類型到 object 類型或到該值類型所實現的任何接口類型的隱式轉換。將一種值的值裝箱會分派一種對象實例并將該值復制到新的對象中。取消裝箱是從 object 類型到值類型或從接口類型到實現該接口的值類型的顯式轉換

13、。取消裝箱操作涉及: 檢核對象實例,保證它是給定值類型的一種裝箱值。 將該值從實例復制到值類型變量中。23 一種構造函數能否調用另一種構造函數,如果能請寫出簡樸的代碼能.class class1int y;public class1()new class1(5);public class1(int i)this.y=i;public void x()Console.WriteLine(y.ToString();static void Main(string args)/class1 cl=new class1(5);cl.x();24 請編寫創立一種線程的代碼。using System;usi

14、ng System.IO;using System.Threading ;class MyThreadpublic int count;string thrdName;public MyThread(string name)count=0;thrdName=name;public void run()Console.WriteLine(thrdName+starting.);doThread.Sleep(500);Console.WriteLine(In+thrdName+, count is +count);count+;while(count10);Console.WriteLine(th

15、rdName+ terminating.);class MultiThreadpublic static void Main()Console.WriteLine(Main thread starting.);MyThread mt=new MyThread(Child #1);Thread newThrd=new Thread(new ThreadStart(mt.run);newThrd.Start();do Console.Write(.);Thread.Sleep(100);while(mt.count!=10);Console.WriteLine(Main thread ending

16、.);25 Params是什么含義?params 核心字可以指定在參數數目可變處采用參數的措施參數。在措施聲明中的 params 核心字之后不容許任何其她參數,并且在措施聲明中只容許一種 params 核心字。26 C#中有無運算符重載?能否使用指針?o重載操作符意味著使該操作符具有不同的行為o使用操作符可以使方程式簡樸易懂o重載運算符使用operator核心字來創立一種運算符措施能使用指針,在 C# 中很少需要使用指針,但仍有某些需要使用的狀況。例如,在下列狀況中使用容許采用指針的不安全上下文是對的的: 解決磁盤上的既有構造 波及內部涉及指針的構造的高檔 COM 或平臺調用方案 性能核心代碼

17、不鼓勵在其她狀況下使用不安全上下文。具體地說,不應當使用不安全上下文嘗試在 C# 中編寫 C 代碼。27 C#中有諸多類被定義為public有什么意義?Public 核心字將公共訪問權限授予一種或多種被聲明的編程元素。對公共元素的可訪問性沒有限制。28 Internal修飾符有什么含義?internal 核心字是類型和類型成員的訪問修飾符。內部成員只有在同一 HYPERLINK 程序集中的文獻內才是可訪問的。內部訪問一般用于基于組件的開發,由于它使一組組件可以以私有方式進行合伙,而不必向應用 HYPERLINK 程序代碼的其他部分公開。例如,用于生成圖形顧客界面的框架可以提供控件類和窗體類,這

18、些類通過使用品有內部訪問能力的成員進行合伙。由于這些成員是內部的,它們不向正在使用框架的代碼公開。在定義具有內部訪問能力的成員的 HYPERLINK 程序集外部引用該成員是錯誤的。29 JAVA的代碼是半編譯半解釋的C#的代碼與否也是這樣C#源碼通過語言編譯器執行第一次編譯,變為中間語言,然后再由CLR編譯成可執行代碼.30 私有 HYPERLINK 程序集與共享 HYPERLINK 程序集有什么區別?私有 HYPERLINK 程序集:o默認狀況下,C# HYPERLINK 程序編譯為私有 HYPERLINK 程序集o需要放在應用 HYPERLINK 程序所在的文獻夾中o HYPERLINK

19、程序集的名稱在應用 HYPERLINK 程序中應當是唯一的共享 HYPERLINK 程序集:o可以被不同的應用 HYPERLINK 程序共享o在所有使用 HYPERLINK 程序集的應用 HYPERLINK 程序中, HYPERLINK 程序集名稱應當是唯一的o放在全局 HYPERLINK 程序集緩存中31 請解釋進程與線程的區別?進程與 HYPERLINK 程序的區別?用最簡短的話來說,進程就是目前運營的應用 HYPERLINK 程序。線程是操作系統向其分派解決器時間的基本單位。線程可執行進程的任何一部分代碼,涉及目前由另一線程執行的部分。32 CLR與IL分別是什么含義?CLR(公共語言運

20、營庫):能管理內存,可以輕松地設計其對象可以跨語言互動的組件和應用 HYPERLINK 程序,編譯一次,并可以在任何支持運營庫的CPU和操作系統上運營,跨語言集成(特別是跨語言繼承)IL(中間語言):可用于語言互操作性,IL不是字節代碼,但很接近字節代碼,因此執行應用 HYPERLINK 程序時,IL到機器代碼的轉換要快諸多。獨立于CPU的指令集。由CLR轉換為特定于CPU的代碼。33 對象能否調用靜態措施對象能調用靜態措施。34 請闡明如下代碼的成果class Fathervoid show() Console.Write(Father);static void Main(string ar

21、gs) Father obj=new Child();obj.show();class Child:Fathervoid show() Console.Write(Child);執行成果為:Father.二、 HYPERLINK asp.NET1 HYPERLINK asp.NET中的身份驗證有那些?請解釋。(1) Windows驗證:指定Windows身份驗證作為默認的身份驗證模式.如果是任何形式的Internet信息服務(IIS)身份驗證,則使用此模式.(2) Forms驗證:指定基于 HYPERLINK asp。NET窗體的身份驗證作為默認的身份驗證模式。(3) Passport:指定M

22、icrosoft Passport身份驗證作為默認的身份驗證模式。(4) None:不指定身份驗證,僅合用于匿名顧客,或者應用 HYPERLINK 程序可以解決事件以提供它們自己的身份驗證狀況。2 什么是WEB控件?使用WEB控件有那些優勢?WEB控件是能拖放在WEB頁面上的控件WEB控件分為:內部控件, 列表控件, 復雜控件, 驗證控件oWEB控件優勢:Web 控件是對象-與對象同樣,Web 控件擁有措施和屬性,并且響應事件-一旦將 Web 控件涉及在 Web 頁中,就可以設立其屬性并調用其措施-可覺得 Web 控件編寫服務器端代碼以響應在客戶端上發生的事件3 請解釋 HYPERLINK a

23、sp。NET中以什么方式進行數據驗證?是以驗證控件進行數據驗證的。4 請談談對正則體現式的見解?能將某些比較復雜的驗證邏輯以簡樸的驗證體現式驗證.5 HYPERLINK asp。NET中共有幾種類型的控件?各有什么區別?WEB控件分為:內部控件, 列表控件, 復雜控件, 驗證控件內部控件-內部控件的使用措施與 HTML 控件相似,它們映射到 HTML 元素并通過使用 runat = server 屬性在服務器上執行列表控件-用于在 Web 頁中創立數據列表復雜控件- o當但愿控件擁有復雜的功能或使用 HTML 元素無法創立的功能豐富的顧客界面時,可以使用復雜控件驗證控件-輸入控件的數據需要進行

24、精確性和取值范疇方面的檢查6 WEB控件可以激發服務端事件,請談談服務端事件是怎么發生并解釋其原理?自動傳回是什么?為什么要使用自動傳回。由于 HYPERLINK asp。NET是Web頁面和服務端分離的,因此要產生了服務端事件.o使用_doPostBack函數可以自動地把客戶端的javascript事件轉變為一種服務器端的事件o HYPERLINK 框架自動為我們解決有關的細節簡化工作使用自動傳回的特性:在檢測到一種特定顧客動作時,自動傳回可以將這個頁面傳回服務器以解決事件.7 WEB控件及HTML服務端控件能否調用客戶端措施?如果能,請解釋如何調用?8 HYPERLINK asp.NET與

25、 HYPERLINK asp相比有什么優勢? HYPERLINK asp的缺陷:(1) VBScript和JavaScript是在 HYPERLINK asp中僅可使用的兩種腳本語言。它們是基本的非類型化語言。在 HYPERLINK asp中不能使用強類型語言.(2) HYPERLINK asp頁面需要解釋,使得它執行速度較慢。(3) HYPERLINK asp頁面非常凌亂。(4) 在使用 HYPERLINK asp創立WEB應用 HYPERLINK 程序時, HYPERLINK 程序員和設計人員必須在同一文獻上一起工作。(5) 在 HYPERLINK asp中,必須通過編寫代碼來提供所需的任

26、何功能。(6) 在 HYPERLINK asp中沒有對代碼予以太多的關注。(7) 在 HYPERLINK asp中沒有調試機制。(8) 在 HYPERLINK asp中。必須停止WEB服務器才干安裝DLL的新版本,并且在應用 HYPERLINK 程序中使用DLL的新版本之前,必須先在注冊表中注冊它,并且,DLL注冊過程非常復雜。 HYPERLINK asp.NET的長處:(1) HYPERLINK asp。NET中支持強類型語言.(2) HYPERLINK asp。NET頁將被編譯而不是解釋,這樣它們的執行速度就比 HYPERLINK asp頁快。(3) HYPERLINK asp。NET提供聲明性服務器控件。(4) HYPERLINK asp。NET通過繼承機制來支持代碼的重用。(5) HYPERLINK asp。NET具有Trace的內置措施,可以協助對頁面進行調試。(6) 在 HYPERLINK asp。NET中,置于應用 HYPERLINK 程序的BIN目錄中的任何組件將自動相應用 HYPERLINK 程序可用.9 請解釋web.config文獻中的重要節點動態調試編譯-,自定義錯誤信息-,身份驗證-,授權-,應用 HYPERLINK 程序級別跟蹤記錄-,會話狀態設立-,全

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論