C#有一個基於值類型和引用類型之間區別為基礎的類型系統;
相關概念:CLR、受管制代碼、非受管制代碼、CTS、CLS、裝配件、反射、裝配件清單、應用域、無用存儲單元收集
.NET程序包含多個裝配件,其中一個裝配件被指定為一個可執行程序,包含主程序的啓動入口點,其他的裝配件則被指定為庫
編譯、運行:* .CS——〉裝配件(IL、元數據)——〉CLR(JIT編譯(獲取安全許可、内存類型檢查、應用域)、無用内存單元檢查與收集、com交換操作服務)
值類型:變量保存值,存在堆棧中
引用類型:變量保存地址,存在堆中
JIT的編譯機制:將JIT中要調動的代碼編譯出來,而不是整個裝配件中的IL碼;同時會根據相應的處理器進行相應的特性的優化
.NET無用内存單元收集機制是將所有動態分配的内存都分配到堆上 ,儅堆中已滿,就檢查在堆上的對象的引用,沒有引用的對象就給與刪除;在代碼中可以顯式的使用,用System.GC調用無用存儲單元的收集
.NET安全機制是基於代碼的安全性,與windows的基於角色的安全性不同,更加安全