該系列持續更新,從網上以及身邊收集的問題
1.可訪問性級別有哪幾種
public 訪問不受限制。
protected 訪問僅限於包含類或從包含類派生的類型。
internal 訪問僅限於當前程序集。
protected internal 訪問僅限於從包含類派生的當前程序集或類型。
private 訪問僅限於包含類型。
2.String和StringBuilder的區別
String類有不可改變性。每次執行字符操作時,都會創建一個新的String對象。
StringBuilder對象在初始化以後只有一個對象。
在頻繁操作或拼接字符串時使用StringBuilder更好
*String是引用類型,存放在堆上
3.Struct和Class的區別
class是引用類型,structs是值類型
class創建在堆上。struct創建在棧上
class可以有初始化器,struct不可以有初始化器
class可以有明顯的無參數構造器,但是Struct不可以
class使用前必須實例化,struct不需要
class支持繼承和多態,struct不支持
class的構造器不需要初始化全部字段,struct的構造器必須初始化所有字段
class有面向對象的擴展優勢,struct有性能優勢
4.應用程序域?托管代碼?強類型系統?裝箱和拆箱?重載?
應用程序域(AppDomain)
可以看成輕量級的進程,一個進程中可以包含多個應用程序域,一個應用程序域可以裝載一個可執行程序(*.exe)或者多個程序集(*.dll)。這樣可以使應用程序域之間實現深度隔離,即使進程中的某個應用程序域出現錯誤,也不會影響其他應用程序域的正常運作
托管代碼(Managed Code)
中間語言(IL)代碼,由公共語言運行庫(CLR)執行的代碼,而不是由操作系統直接執行,由CLR轉換為計算機語言解釋給計算機
強類型系統
所有變量必須被指定類型,沒有強制類型轉化前,不允許兩種不同類型的變量相互操作
裝箱和拆箱
箱是將值類型轉換為引用類型,拆箱是將引用類型轉換為值類型
重載
同一個類中有兩個或多個名字相同但是參數不同的方法
5.CTS、CLS和CLR分別作何解釋?
http://www.cnblogs.com/zagelover/articles/2741370.html
CTS通用類型系統(Common Type System)
描述了類型的定義和行為。
CLS通用語言規范(Common Language Specification)
是CTS的一個子集,它定義了希望編寫在.NET平台上運行的程序的語言所需符合的最小規范
CLR公共語言運行庫(Common Language Runtime)
CLR是CTS的實現,也就是說,CLR是應用程序的執行引擎和功能齊全的類庫,該類庫嚴格按照CTS規范實現。
6.GC是什麼
CLR垃圾回收機制,根據"代"自動回收堆上不被引用的對象
To be continue...