net面試題及答案_第1頁
net面試題及答案_第2頁
net面試題及答案_第3頁
net面試題及答案_第4頁
net面試題及答案_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

.net面試題及答案1.JIT是什么,它是如何工作的?GC是什么,簡述一下GC的工作方式?

JIT:Justintime,C#或者是VB.NET的代碼首先被編譯為IL存儲在本地,當(dāng)要運行這些代碼的時候,CLR對IL進(jìn)展其次次編譯轉(zhuǎn)換成機(jī)器碼運行。好處:可移植性,而且IL在加載到內(nèi)存中時將受到類型安全性方面檢查,這實現(xiàn)了更好的安全性和牢靠性。

GC:垃圾回收(garbagecollection),是依據(jù)程序的需要自動安排和回收內(nèi)存的過程。垃圾回收器處理的是引用對象,而且只回收堆上的內(nèi)存。這意味著假設(shè)維持對一個對象的引用,就會阻擋GC重用對象使用的內(nèi)存。在.NET中,垃圾回收器采納的是mark-and-compact算法。在一次垃圾回收周期開頭的時候,它要識別對象的全部跟引用,依據(jù)這個引用可以遍歷每個根引用所標(biāo)識的一個樹形構(gòu)造,并遞歸確定全部引用指向的對象。這樣一來,垃圾回收器就可以識別全部可達(dá)的對象,在執(zhí)行回收的時候,GC不是枚舉全部訪問不到的對象,相反,通過壓縮全部相鄰的可達(dá)的對象來執(zhí)行垃圾回收。不行訪問的對象就會被掩蓋。垃圾回收的宗旨是提高內(nèi)存的利用率,它并不是用來清理文件句柄,和數(shù)據(jù)庫連接字符串,端口或者其他有限的資源(終接器finalizer,不能被顯示調(diào)用,不能傳遞任何參數(shù),即不能被重載,只有垃圾回收器才能調(diào)用終接器,使用Using語句進(jìn)展確定性終結(jié)

2.類(class)和構(gòu)造(struct)的區(qū)分是什么?它們對性能有影響嗎?

01.值類型與引用類型

構(gòu)造是值類型:值類型在棧上安排地址,全部的基類型都是構(gòu)造類型,例如:int對應(yīng)S32構(gòu)造,通過使用構(gòu)造可以創(chuàng)立更多的值類型

類是引用類型:引用類型在堆上安排地址堆棧的執(zhí)行效率要比堆的執(zhí)行效率高,可是堆棧的資源有限,不適合處理大的規(guī)律簡單的對象。所以構(gòu)造處理作為基類型對待的小對象,而類處理某個商業(yè)規(guī)律由于構(gòu)造是值類型所以構(gòu)造之間的賦值可以創(chuàng)立新的構(gòu)造,而類是引用類型,類之間的賦值只是復(fù)制引用

注:1.雖然構(gòu)造與類的”類型不一樣,可是他們的基類型都是對象(object),c#中全部類型的基類型都是object

2.雖然構(gòu)造的初始化也使用了New操作符可是構(gòu)造對象依舊安排在堆棧上而不是堆上,假如不使用“新建”(new),那么在初始化全部字段之前,字段將保持未賦值狀態(tài),且對象不行用

02.繼承性

構(gòu)造:不能從另外一個構(gòu)造或者類繼承,本身也不能被繼承,雖然構(gòu)造沒有明確的用sealed聲明,可是構(gòu)造是隱式的sealed.

類:完全可擴(kuò)展的,除非顯示的聲明sealed否則類可以繼承其他類和接口,自身也能被繼承注:雖然構(gòu)造不能被繼承可是構(gòu)造能夠繼承接口,方法和類繼承接口一樣

03.內(nèi)部構(gòu)造:

構(gòu)造:沒有默認(rèn)的構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù)沒有析構(gòu)函數(shù)沒有abstract和sealed(由于不能繼承)不能有protected修飾符可以不使用new初始化在構(gòu)造中初始化實例字段是錯誤的

類:有默認(rèn)的構(gòu)造函數(shù)有析構(gòu)函數(shù)可以使用abstract和sealed有protected修飾符

必需使用new初始化

.net面試題及答案(二)

1.什么是元編程,.NET有哪些元編程的手段和場景?什么是反射?能否舉一些反射的常用場景?有人說反射性能較差,您怎么對待這個問題?有什么方法可以提高反射的性能嗎?

學(xué)著做OA的時候,動態(tài)加載不同的DataProvider(Oracle和Sqlserver),便利,可以隨時替換不用重新編譯程序

2.托付是什么?匿名方法是什么?在C#3.0中,Lambda表達(dá)式是什么?擴(kuò)展方法是什么?LINQ是什么?您覺得C#3.0中還有哪些重要的特性,它們帶來了什么優(yōu)勢?BCL中哪些類庫和這些特性有關(guān)?您平常最常用哪些?

托付可以把一個方法作為參數(shù)代入另一個方法。

托付可以理解為指向一個函數(shù)的指針。

匿名方法:就是沒有實際方法聲明的托付實例?;蛘哒f,它們的定義是直接內(nèi)嵌在代碼中的。

Lambda表達(dá)式:是比匿名方法更加簡潔的一種匿名函數(shù)語法

托付和大事沒有可比性,由于托付是類型,大事是對象,下面說的是托付的對象(用托付方式實現(xiàn)的大事)和(標(biāo)準(zhǔn)的event方式實現(xiàn))大事的區(qū)分。大事的內(nèi)部是用托付實現(xiàn)的。由于對于大事來講,外部只能“注冊自己+=、注銷自己-=”,外界不行以注銷其他的注冊者,外界不行以主動觸發(fā)大事,因此假如用Delegate就沒法進(jìn)展上面的掌握,因此誕生了大事這種語法。大事是用來閹割托付實例的,類比用一個自定義類閹割List。大事只能add、remove自己,不能賦值。大事只能+=、-=,不能=。大事內(nèi)部就是一個private的托付和add、remove兩個方法。

3.工作之外您看哪些技術(shù)相關(guān)的書、網(wǎng)站、社區(qū)、工程等等?

您還接觸哪些.NET以外的技術(shù),能和.NET或.NET中有針對性的局部做個比照嗎?

C#本質(zhì)論,SQLServer2023實戰(zhàn),數(shù)據(jù)構(gòu)造,ASP.NET揭秘,Javascript深入淺出

4.website和webapplication的區(qū)分

1)website修改后不需要重啟即可看到效果,webapplication需要

2)website不分namespace,webapplication有namespace

3)website為了兼容asp轉(zhuǎn)過來的開發(fā)人員習(xí)慣

4)沒有技術(shù)上的區(qū)分,調(diào)試習(xí)慣不同

5)website為每個編譯為一個dll,webapplication生成一個dll

6)不利于工程開發(fā),比方代碼出錯不簡單發(fā)覺

.net面試題及答案(三)

1.特別的作用是什么?.NETBCL中有哪些常見的特別?在代碼中您是如何捕獲/處理特別的?在“catch(ex)”中,“throw”和“throwex”有什么區(qū)分?您會如何設(shè)計特別的構(gòu)造,什么狀況下您會拋出特別?

(1)C#語言的特別處理功能可幫忙您處理程序運行時消失的任何意外或特別狀況

(2)throw會保存堆棧信息。throwex不會。固然,假如你拋出新的特別之前設(shè)置innerException的話,可以通過innerException的堆棧訪問原有的堆棧。

(3)靠特別才能發(fā)覺錯誤的,通過trycatchfinally來捕獲特別。假如是未預(yù)料到的則不處理(內(nèi)存缺乏,刪除文件)直接報錯更簡單發(fā)覺錯誤catch塊從最詳細(xì)到常規(guī)排列

2.ListT和T[]的區(qū)分是什么,平常你如何進(jìn)展選擇?DictionaryTKey,TValue是做什么的?.NETBCL中還有哪些常用的容器?它們分別是如何實現(xiàn)的(哪種數(shù)據(jù)構(gòu)造)?分別是適用于哪些場景?

01.ListTarrylist的泛型版本,大小是可變的,T[]繼承自Array,大小是固定的。假如大小沒有怎么變化,選擇T[],一般狀況下選擇ListT

02.Dictionary是hashtable的泛型版本,用來存儲鍵值對的.例如:sortlist,stack等

3.抽象類和接口有什么區(qū)分?使用時有什么需要留意的嗎?

如何選擇是定義一個“完全抽象”的抽象類,還是接口?什么是接口的“顯式實現(xiàn)”?為什么說它很重要?

一樣點:都不能被直接實例化,都通過繼承實現(xiàn)其抽象方法

不同點:

(1)接口支持多繼承;抽象類不能實現(xiàn)多繼承。

(2)接口只能定義行為;抽象類既可以定義行為,還可能供應(yīng)實現(xiàn)。

(3)抽象類允許包含實現(xiàn)的virtual成員,所以能為派生類成員供應(yīng)一個默認(rèn)的實現(xiàn),而接口全部的成員自動成為virtual成員,而且不能包含任何實現(xiàn)

4.字符串是引用類型類型還是構(gòu)造類型?引用類型

它和一般的引用類型相比有什么特殊的地方嗎?不行變的

使用字符串時有什么需要留意的地方?為什么說StringBuilder比擬高效?

當(dāng)拼接兩個字符串時,系統(tǒng)先是把兩個字符串寫入內(nèi)存,接著刪除原來的String對象,然后創(chuàng)立一個String對象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對象。這一來二去的,耗了不少時間。而使用System.Text命名空間下面的StringBuilder類就不是這樣了,它供應(yīng)的Append方法,能

溫馨提示

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

最新文檔

評論

0/150

提交評論