c#面試題

死鎖的必要條件?怎么克服?

答:系統的資源不足,進程的推進的順序不合適,資源分配不當,一個資源每次只能被一個進程使用,一個資源請求資源時,而此時這個資源已阻塞,對已獲得資源不放,進程獲得資源時,未使用完前,不能強行剝奪。

簡述private、protected、public、internal修飾符的訪問許可權。

答.private:私有成員,在類的內部才可以訪問。

protected:保護成員,該類內部和繼承類中可以訪問。

public:公共成員,完全公開,沒有訪問限制。

internal:在同一命名空間內可以訪問。

列舉asp.net頁面之間傳遞值的幾種方式。

答.1.使用querystring,如....?id=1;response.redirect()....

2.使用session變數

3.使用server.transfer

  c#中的委託是什麼?事件是不是一種委託?

答:委託可以把一個方法作為參數代入另一個方法。委託可以理解為指向一個函式的引用。是,是一種特殊的委託

override與重載的區別答:

override與重載的區別。重載是方法的名稱相同。參數或參數類型不同,進行多次重載以適應不同的需要

override是進行基類中函式的重寫。為了適應需要。

構造器constructor是否可以被繼承?是否可以被override?

答:constructor不可以被繼承,因此不能被重寫(overriding),但可以被重載(overloading).

當一個執行緒進入一個對象的方法後,其它執行緒是否可以進入該對象的方法?

答:不可以,一個對象的方法只能由一個執行緒訪問。

談談final,finally,finallize的區別?

答:final用於申明屬性,方法和類,表示屬性不可變,方法不可以被覆蓋,類不可以被繼承。

finally是異常處理語句結構中,表示總是執行的部分。

finallize表示是object類一個方法,在垃圾回收機制中執行的時候會被調用被回收對象的方法。

hashmap和hashtable區別?

答:hashmap是hashtable的輕量級實現,非執行緒安全的實現他們都實現了map接口,主要區別是hashmap鍵值可以為空null,效率可以高於hashtable。

collection和collections的區別?

答:collection是集合類的上級接口,collections是針對集合類的一個幫助類,它提供一系列靜態方法來實現對各種集合的搜尋,排序,執行緒安全化操作。

udp和tcp連線有和異同?

答:tcp是傳輸控制協定,提供的是面向連線的,是可靠的,位元組流服務,當用戶和伺服器彼此進行數據互動的時候,必須在他們數據互動前要進行tcp連線之後才能傳輸數據。tcp提供逾時重撥,檢驗數據功能。udp是用戶數據報協定,是一個簡單的面向數據報的傳輸協定,是不可靠的連線。

進程和執行緒分別該怎么理解?

答:進程是比執行緒大的程式運行單元,都是由作業系統所體會的系統運行單元,一個程式中至少要有一個進程,有一個進程中,至少要有一個執行緒,執行緒的劃分尺度要比進程要小,進程擁有獨立的記憶體單元,執行緒是共享記憶體,從而極大的提高了程式的運行效率同一個進程中的多個執行緒可以並發執行。

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

答:不是。可以用任意類型。

什麼叫應用程式域?

答:應用程式域可以理解為一種輕量級進程。起到安全的作用。占用資源小。

cts、cls、clr分別作何解釋?

答:cts:通用語言系統。

cls:通用語言規範。

clr:公共語言運行庫。

什麼是裝箱和拆箱?

答:從值類型接口轉換到引用類型裝箱。從引用類型轉換到值類型拆箱。

什麼是受管制的代碼?

答:unsafe:非託管代碼。不經過clr運行。

什麼是強類型系統?

答:rtti:類型識別系統。