最近的面試讓我知道基礎知識的重要性
而我也每天都在網上找一些基礎題來看
其實面試無非都是一些理論基礎
只有基礎過關了
才會被問到技術性的問題
所以第一關一定要打好
下面是我收集的一些題目以及答案(答案可能有些包含我自己的見解如有錯誤請指出)
面向對象的三大特性
封裝繼承多態
裝箱和拆箱
裝箱值類型轉換為引用類型
拆箱引用類型轉換為值類型
NET中數據類型劃分為值類型和引用(不等同於C++的指針)類型與此對應內存分配被分成了兩種方式一為棧二為堆注意是托管堆
值類型只會在棧中分配
引用類型分配內存與托管堆
托管堆對應於垃圾回收
C#可否對內存進行直接的操作?
可以通過加一個unsafe關鍵字實現
C#中結構和類的區別
機構和類具有大體的語法結構受到的限制比類要多結構不能聲明構造函數結構是值類型類是引用類型結構的實例化可以不使用new關鍵字類可以實現接口結構不可以
接口可否繼承接口?抽象類可否實現接口?抽象類可否繼承實體類?
()接口可以繼承接口
()抽象類可以實現接口
()抽象類可以繼承實體類但是有個條件實體類必須有明確的構造方法
構造器Constructor是否可以被繼承?是否可以被重寫(Override)?
構造器不可以被繼承因此不能被重寫但可以被重載(overload)
Error和Exception的區別
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題比如說內存溢出不可能指望程序能處理這樣的情況 exception 表示一種設計或實現問題也就是說它表示如果程序運行正常從不會發生的情況
說說你對C#中的委托的理解
委托是一個類它定義了方法的類型使得可以將方法當作另一個方法的參數來進行傳遞這種將方法動態地賦給參數的做法可以避免在程序中大量使用IfElse(Switch)語句同時使得程序具有更好的可擴展性事件是一種消息機制是一種委托委托不帶方法體
簡述反射與序列化
反射其實就對程序集的動態操作程序集包括了模塊而模塊裡面包含類型類型又包含成員反射提供了封裝程序集模塊和類型的對象
我們可以使用反射動態的創建類型的實例將類型綁定到現有的對象或者從現有對象中獲取類型然後就可以調用類型的方法或訪問字段和屬性了
序列化簡單理解成把對象轉換為容易傳輸的格式的過程比如可以序列化一個對象然後使用HTTP通過Internet在客戶端和服務器端之間傳輸該對象
在另一端可以使用反序列化從該流重新構造對象
C#中值類型和引用類型的區別
()值類型的數據存儲在內存的棧中引用類型的數據存儲在內存的堆中而內存單元中只存放堆中對象的地址
()值類型存取速度快引用類型存取速度慢
()值類型表示實際數據引用類型表示指向存儲在內存堆中的數據的指針或引用
()值類型繼承自SystemValueType引用類型繼承自SystemObject
()棧的內存分配是自動釋放而堆在NET中會有GC來釋放
()值類型的變量直接存放實際的數據而引用類型的變量存放的則是數據的地址即對象的引用
歡迎補充……
談談你對三層架構的認識
()DAL數據訪問層直接對數據庫進行增刪改查
()BLL業務邏輯層對數據業務的處理
()UI表現層對處理過的數據展現給用戶
優點體現面向對象編程的思想高內聚低耦合提高擴展性
adonet使用到哪些類?
SqlConnectionSqlDataAdaptorDataSetSqlCommandSqlDataReader
SQL語句實現分頁在表T中(有自增子段ID)查詢第條記錄
select * from (select ROW_NUMBER() over (order by ID) as rowNum* from T) as t where rowNum between and
歡迎各位補充希望這些對需要的人有點用
From:http://tw.wingwit.com/Article/program/net/201311/14080.html