C#,.Net經典面試題目及答案

1, 請你說說.NET中類和結構的區別?

  答:結構和類具有大體的語法,但是結構受到的限制比類要多。結構不能申明有默認的構造函數,爲結構的副本是又編譯器創建和銷燬的,所以不需要默認的構 造函數和析構函數。結構是值類型,所以對結構變量所做的改變不會影響其的原值,而類是應用類型,改變其變量的值會改變其原值。申明結構用Struck關鍵 字,申明類用class關鍵字,向方法傳遞結構是時是通過值傳遞的,而不是通過引用。與類不同,結構的實例化可以不使用New關鍵字。類可以實現接口。

  2, 死鎖的必要條件?怎麼克服?

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

  3, 接口是否可以繼承接口?抽象類是否可以實現接口?抽象類是否可以繼承實體類?

  答:接口是可以繼承接口的,抽象類是可以實現接口的,抽象類可以繼承實體類,但是有個條件,條件是,實體類必須要有明確的構造函數。

  4, 構造器Constructor是否可以被繼承?是否可以被Override?

  答:Constructor不可以被繼承,因此不能被重寫(Overriding),但可以被重載(Overloading).

5,是否可以繼承String類?

  答:因爲String類是final類所以不可以繼承string類。

  5, 當一個線程進入一個對象的方法後,其它線程是否可以進入該對象的方法?

  答:不可以,一個對象的方法只能由一個線程訪問。

  6, 用最有效的方法算出等已8對於幾?

  答:2<<3.

  7,C#是否可以對內存直接進行操作?

  答:這個問題比較難回答,也是個很大的問題。但是可以這樣問答。C#是可以對內存進行直接操作的,雖然很少用到指針,但是C#是可以使用指針的,在用 的時候需要在前邊加unsafe,,在.net中使用了垃圾回收機制(GC)功能,它替代了程序員,不過在C#中不可以直接使用finalize方法,而 是在析構函數中調用基類的finalize()方法。

  7, 數組有沒有Length()這和方法?string有沒有這個方法?

  答:數組中沒有這個方法,但有這個屬性,string中有這個方法。

  8, Error和Exception有是區別?

  答:error表示恢復不是不可能,但是很困難,exception表示一種實際或實現問題,它表示程序運行正常不可以發生的。

  9,談談final,finally,finallize的區別?

  答:final用於申明屬性,方法和類,表示屬性不可變,方法不可以被覆蓋,類不可以被繼承。
  Finally是異常處理語句結構中,表示總是執行的部分。
  Finallize表示是object類一個方法,在垃圾回收機制中執行的時候會被調用被回收對象的方法。

  10,HashMap和Hashtable區別?

  答:HashMap是Hashtable的輕量級實現,非線程安全的實現他們都實現了map接口,主要區別是HashMap鍵值可以爲空null,效率可以高於Hashtable。

  11,Collection和Collections的區別?

  答:Collection是****類的上級接口,Collections是針對****類的一個幫助類,它提供一系列靜態方法來實現對各種****的搜索,排序,線程安全化操作。

  12,C#中委託是什麼?事件是不是一種委託?

  答:委託是一種安全的類似與函數指針,但是她比指針要安全的多,它可以把方法作爲一個參數傳遞給另一個方法,可以理解爲指向函數的引用。事件是一種消息機制,它是一種委託,委託不帶方法體。

  13,Override, Overload,的區別?

  答:Override是重寫的意思,它表示重寫基類的方法,而且方法的名稱,返回類型,參數類型,參數個數要與基類相同。
  Overload是重載是意思,它也表示重寫基類的方法,但是隻要方法名相同,別的可以不同。

  14,在一個BS結構中需要傳遞變量值時,不能使用session,coolke,application,你有幾中方法?

  答:this.server.Transfer,Querystring.

  15,C#種索引器實現過程,是否只能根據數字索引?

  答:不是的,可以是任意類型。

  15,C#種索引器實現過程,是否只能根據數字索引?

  答:不是的,可以是任意類型。

  16,New有種用法?

  答:有3種,第一種是,實例化如:New Class()
  第二種是,public new 隱藏基類的方法
  第三種是,在泛型類申明中的任何類型參數都必須有公共的無參構造函數。

17,任何把一個Array複製到Arraylist中?

  答:Foreach (object o in Array), ArrayList.Add (0)

等有好多中種方法。自己想。

  18,概述反射和序列化?

  答:反射:要給發射下一個定義還是比較難的,這裏先說說我的理解。反射提供了封裝程序集,模塊和類型對象,可以用反射動態地創建類型的實例,將類型綁定到現有對象,或者從現有對象類型裏獲取類型,然後調用類型的方法或訪問字段和屬性。

  序列化:將對象轉換爲另一種媒介傳輸的格式過程。如,序列化一個對象,用Http通過internet在客戶端和服務器之間傳遞該對象,在另一端用反序列化從該流中重新得到對象。

  19,Const和ReadOnly?
  答:Const用來申明編程時申明常量,ReadOnly用來申明運行時常量。

  20,UDP和TCP連接有和異同?

  答:TCP是傳輸控制協議,提供的是面向連接的,是可靠的,字節流服務,當用戶和服務器彼此進行數據交互的時候,必須在他們數據交互前要進行TCP連 接之後才能傳輸數據。TCP提供超時重撥,檢驗數據功能。UDP是用戶數據報協議,是一個簡單的面向數據報的傳輸協議,是不可靠的連接。

  21,進程和線程分別該怎麼理解?

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

  22,ASP。NET頁面之間傳遞值的幾種方式?

  答:Qu

 

 

From:http://user.qzone.qq.com/554635616/blog/1204298656

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章