程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> .net基礎收集匯總

.net基礎收集匯總

編輯:關於ASP.NET
    最近的面試讓我知道基礎知識的重要性,而我也每天都在網上找一些基礎題來看。其實面試無非都是一些理論基礎,只有基礎過關了,才會被問到技術性的問題,所以第一關一定要打好  

    下面是我收集的一些題目以及答案(答案可能有些包含我自己的見解,如有錯誤請指出)。
    1.面向對象的三大特性
    封裝、繼承、多態

    2.裝箱和拆箱
    裝箱:值類型轉換為引用類型
    拆箱:引用類型轉換為值類型

    .NET中,數據類型劃分為值類型和引用(不等同於C++的指針)類型,與此對應,內存分配被分成了兩種方式,一為棧,二為堆,注意:是托管堆。
    值類型只會在棧中分配。
    引用類型分配內存與托管堆。
    托管堆對應於垃圾回收。

    3.C#可否對內存進行直接的操作?
    可以,通過加一個unsafe關鍵字實現。

    4.C#中結構和類的區別
    機構和類具有大體的語法,結構受到的限制比類要多。結構不能聲明構造函數。結構是值類型,類是引用類型。結構的實例化可以不使用new關鍵字。類可以實現接口,結構不可以。

    5.接口可否繼承接口?抽象類可否實現接口?抽象類可否繼承實體類?
    (1)接口可以繼承接口
    (2)抽象類可以實現接口
    (3)抽象類可以繼承實體類,但是有個條件,實體類必須有明確的構造方法。

    6.構造器Constructor是否可以被繼承?是否可以被重寫(Override)?
    構造器不可以被繼承,因此不能被重寫,但可以被重載(overload)。

    7.Error和Exception的區別
    error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況; exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。

    8.說說你對C#中的委托的理解
    委托是一個類,它定義了方法的類型,使得可以將方法當作另一個方法的參數來進行傳遞,這種將方法動態地賦給參數的做法,可以避免在程序中大量使用If-Else(Switch)語句,同時使得程序具有更好的可擴展性。事件是一種消息機制,是一種委托,委托不帶方法體。

    9.簡述反射與序列化
    反射:其實就對程序集的動態操作,程序集包括了模塊,而模塊裡面包含類型,類型又包含成員。反射提供了封裝程序集,模塊和類型的對象。

    我們可以使用反射動態的創建類型的實例,將類型綁定到現有的對象,或者從現有對象中獲取類型,然後就可以調用類型的方法或訪問字段和屬性了。

    序列化:簡單理解成把對象轉換為容易傳輸的格式的過程。比如,可以序列化一個對象,然後使用HTTP通過Internet在客戶端和服務器端之間傳輸該對象。
    在另一端可以使用反序列化從該流重新構造對象。

    10.C#中值類型和引用類型的區別
    (1)值類型的數據存儲在內存的棧中;引用類型的數據存儲在內存的堆中,而內存單元中只存放堆中對象的地址。
    (2)值類型存取速度快,引用類型存取速度慢。
    (3)值類型表示實際數據,引用類型表示指向存儲在內存堆中的數據的指針或引用
    (4)值類型繼承自System.ValueType,引用類型繼承自System.Object
    (5)棧的內存分配是自動釋放;而堆在.NET中會有GC來釋放      
    (6)值類型的變量直接存放實際的數據,而引用類型的變量存放的則是數據的地址,即對象的引用。
    歡迎補充……

    11.談談你對三層架構的認識
    (1)DAL:數據訪問層,直接對數據庫進行增刪改查。
    (2)BLL:業務邏輯層,對數據業務的處理。
    (3)UI:表現層,對處理過的數據展現給用戶。
    優點:體現面向對象編程的思想:高內聚低耦合,提高擴展性。

    12. ado.net使用到哪些類?
    SqlConnection、SqlDataAdaptor、DataSet、SqlCommand、SqlDataReader

    13.SQL語句實現分頁:在表T中(有自增子段ID)查詢第31-40條記錄
    select * from (select ROW_NUMBER() over (order by ID) as rowNum,* from T) as t  where rowNum between 31 and 40

    歡迎各位補充,希望這些對需要的人有點用。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved