.net開發(fā)面試題
.net工程師要做好準(zhǔn)備才能在面試中脫穎而出,提前了解開發(fā)面試題很重要。下面小編已經(jīng)為你們整理了.net開發(fā)面試題,希望可以幫到你。
.net開發(fā)面試題(一)
1、請你說說.NET中類和結(jié)構(gòu)的區(qū)別?
答:結(jié)構(gòu)是值類型,在堆棧上分配地址,所有的基類型都是結(jié)構(gòu)類型,如System.int或System.string,不能被繼承。
類是引用類型(new),可以被繼承,在堆上分配地址,堆棧的執(zhí)行效率要比堆的執(zhí)行效率高,但堆棧的資源有限。
2、死鎖的必要條件?怎么克服?
答:系統(tǒng)資源不足,資源分配不當(dāng),一個資源每次只能被一個進程使用,一個資源請求資源時,而此時這個資源阻塞,且對已獲得的資源不放
3、接口是否可以繼承接口?抽象類是否可以實現(xiàn)接口?抽象類是否可以繼承實體類?
答:接口是可以繼承接口;抽象類是可以實現(xiàn)接口;抽象類可以繼承實體類,只要實體類有明確的構(gòu)造函數(shù).
4、構(gòu)造器Constructor是否可以被繼承?是否可以被Override?
答: Constructor不可以被繼承,因此不能被重寫(Override),但可以被重載(Overloading)
5、當(dāng)一個線程進入一個對象的方法后,其它線程是否可以進入該對象的方法? 答:不可以,一個對象的方法只能由一個線程訪問
6、C#是否可以對內(nèi)存直接進行操作?
答:可以,因為可以使用指針
7、數(shù)組有沒有Length()這個方法?string有沒有這個方法?
8、談?wù)刦inal,finally,finallize的區(qū)別?
答:final用來申明屬性、方法、類,表示屬性不可變,方法不可以被覆蓋,類不可以被繼承。
Finally是異常處理語句結(jié)構(gòu),總是執(zhí)行。
Finallize是object類一個方法,在垃圾回收機制中執(zhí)行的時候會被調(diào)用被回收對象的方法。
.net開發(fā)面試題(二)
1.Override, Overload,的區(qū)別?
答:Override是重寫的意思,它表示重寫基類的方法,
而且方法的簽名【名稱,返回類型,參數(shù)類型,參數(shù)個數(shù)】要與基類相同。
Overload是重載是意思,它也表示重寫基類的方法,但是只要方法名相同,別的必須不同。
2.概述反射和序列化?
答:反射:要給反射下一個定義還是比較難的,這里先說說我的理解。
序列化:將對象轉(zhuǎn)換為另一種媒介傳輸?shù)母袷竭^程。
如,序列化一個對象,用Http通過internet在客戶端和服務(wù)器之間傳遞該對象,在另一端用【反序列化】從該流中重新得到對象。
3.什么是ERP?ERP的演變過程?
答:所謂ERP是英文Enterprise Resource Planning(企業(yè)資源計劃)的簡寫。它是從MRP(物料資源計劃)發(fā)展而來的新一代集成化管理信息系統(tǒng),它擴展了MRP的功能,其核心思想是供應(yīng)鏈管理,它跳 出了傳統(tǒng)企業(yè)邊界,從供應(yīng)鏈范圍去優(yōu)化企業(yè)的資源,是基于網(wǎng)絡(luò)經(jīng)濟時代的新一代信息系統(tǒng)。它對 于改善企業(yè)業(yè)務(wù)流程、提高企業(yè)核心競爭力的作用是顯而易見的。
.net開發(fā)面試題(三)
1. 簡述 private、 protected、 public、 internal 修飾符的訪問權(quán)限。 private:私有訪問,它只能在聲明自身的類中進行訪問。
protected:表示受保護的訪問,該類內(nèi)部和繼承類中可以訪問 .public :表示公共訪問,在代碼任何位置都可對其進行訪問。
internal表示內(nèi)部成員,在同一命名空間內(nèi)可以訪問。
2. C#中的委托是什么?事件是不是一種委托?
委托是指具有相同屬性(也稱具有相同的函數(shù)簽名:返回類型相同,參數(shù)類型、參數(shù)順序及參數(shù)個數(shù)相同)的函數(shù)或方法的抽象,關(guān)鍵字為delegate。主要用途是三個:1)函數(shù)回調(diào);2)傳遞方法;3)事件機制。
事件就是一個狹義的委托,也就是事件是一個用于事件驅(qū)動模型的專用委托,對事件的聲明, 實際是聲明一個私有的委托變量,對委托變量進行封裝,即委托變量加上event關(guān)鍵字后,不管其前面的訪問修飾符是public還是private,編譯器都會將其編譯為private。
委托是一個類,它定義了方法的類型,使得可以將方法當(dāng)作另一個方法的參數(shù)來進行傳遞,這種將方法動態(tài)地賦給參數(shù)的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時使得程序具有更好的可擴展性。以委托為參數(shù)的函數(shù)具有一定的通用性。
使用委托可以將多個方法綁定到同一個委托變量,當(dāng)調(diào)用此變量時(這里用“調(diào)用”這個詞,是因為此變量代表一個方法),可以依次調(diào)用所有綁定的方法。
3. abstract 可以和 virtual 一起使用嗎?可以和 override 一起使用嗎?
不可以一起使用,但是可以和override一起使用。
4. 請敘述屬性與索引器的區(qū)別。
屬性:它是存取類的字段,索引器:Indexer它是特殊的屬性,用它可以使用戶像訪問數(shù)組一樣訪問類的成員。
5. 請詳述在dotnet中類(class)與結(jié)構(gòu)(struct)的異同。
類class可以進行實例化,它是引用類型,內(nèi)存分配在棧中,效率高,它有默認(rèn)的構(gòu)造函數(shù),有析構(gòu)函數(shù)可以使用 abstract 和 sealed, protected 修飾符。要用new進行初始化,結(jié)構(gòu)它是屬于值類型,內(nèi)存分配在堆中,效率低,它沒有默認(rèn)的構(gòu)造函數(shù),但是可以添加構(gòu)造函數(shù),沒有析構(gòu)函數(shù)沒有 abstract 和 sealed(因為不能繼承)不能有protected 修飾符 可以不使用new 初始化,但是可以在結(jié)構(gòu)中初始化實例字段。
看了“.net開發(fā)面試題”