前言:
一次偶然的機會 在園子裏看到@Learning hard 出版的一本書: <<C#學習筆記>>, 而後買來 一直到如今讀完, 感受很不錯, 適合入門, 書中內容是從C#1.0 到5.0. 很全面也很細緻.html
下面就來分享一下這本書中本身感受須要記錄的一些東西. sql
這裏先貼上@Learning hard本人在博客園的主頁: http://www.cnblogs.com/zhili/
以及本書中的一些知識點: http://www.cnblogs.com/zhili/category/421637.html 緩存
一: .Net Framework安全
1.1.Net Framework 就是應用程序運行時的執行環境, 爲應用程序的執行提供一下幾種服務:性能
>全面的類庫
>內存管理
>通用類型系統
>開發結構和技術
>語言互操做性 學習
1.2 .Net Framwork的組成spa
1.公共語言運行時線程
公共語言運行時是.Net Framwork的核心基礎. 咱們能夠將CLR當作一個在執行時管理代碼的代理, 它提供了內存管理, 線程管理和異常處理的服務, 並且還負責對代碼實施嚴格的類型安全檢查, 保證了代碼的正確性. 咱們將受CLR管理的代碼稱爲託管代碼(managed code), 將不受CLR管理的代碼稱爲非託管代碼(unmanaged code).代理
CLR包含兩個組成部分: 通用類型系統(Common Type System, CTS)和公共語言規範(Common Language Specification, CLS).code
1.3 .Net Framwork 類庫就是一組DLL程序集的集合.
1.4 C# 代碼的執行過程
>C#代碼編譯爲中間語言代碼的階段
在編譯C#代碼時, C#的編譯器(VS中集成了C#編譯器)把代碼譯爲通用中間語言(Common Intermediate Language, CIL)代碼
>中間語言代碼編譯爲本季代碼的階段
要使C#代碼可以運行, 還需進一步將CIL代碼轉換爲特定CPU的機器碼, 該過程由即時編譯器(Just-In-Time, JIT)來完成.
●並非只有C#代碼纔可以被編譯爲中間語言代碼, 其餘面向.Net的語言在執行以前也都須要先編譯爲中間語言代碼. 該過程由編譯器來完成.
●JIT編譯生成本機代碼以後, 編譯好的代碼會被放置到一個緩衝區緩存, 下次再調用相同的代碼時, 可直接運行緩存區中現有的本機代碼, 從而避免從新驗證IL代碼以及把它編譯成本機代碼的過程. 使用這種方法, 系統只在首次調用時纔會形成一些性能損失(即發生JIT過程).
C#代碼編譯爲中間語言代碼階段:
中間語言代碼編譯爲本機代碼階段
PS: 今天原本想寫更多內容的, 可是時間已經不早了. 這裏還欠缺幾張圖片, 明天再來補上, 有時間的話會分享一下在工做中學習的東西: 好比遠程Debug, sql profiler等.