什麼是.NET?什麼是CLI?什麼是CLR?IL是什麼?JIT是什麼,它是如何工做的?GC是什麼,簡述一下GC的工做方式?.net
.NET:指針
先來講說平臺這詞的意義,你們有的人可能玩過浩方,11什麼之類的,在這些上面能夠進行遊戲,這個就是平臺。而後你們想一想你們用C#寫的程序,說白了就是.NET上的。因此.NET說白了就是平臺,它提供了運行環境,所須要的類庫,沒有它,你就不能讓C#寫的程序運行起來,固然了還有一些好比VB之類的語言寫的程序。code
CLI:遊戲
先說下MSIL,MSIL是將.NET代碼轉化爲機器語言的一箇中間過程。CLI,就是爲MSIL提供環境的。it
CLR:編譯
CLR是個環境,它管着我們的代碼執行。變量
IL:原理
我們寫的程序,Pc不認識,咋辦呢。這就得經過MSIL把代碼轉化成一個Pc認識的語言代碼,這個語言就是IL。江湖上稱爲中間語言代碼。cli
JIT:垃圾回收
Jit是須要的時候,生產須要的量,不浪費,零庫存的生產系統。JIT判斷是不是經常使用的類,若是是經常使用的,就來編譯,其餘的仍是用普通轉義。
GC:
俗稱:垃圾回收機制,工做原理:就是遍歷程序裏的引用類型變量的指針,若是發現沒有指針的,也就是沒用的,那就會被回收。
一個完整的流程:vs-->code-->.net-->clr-->cli-->il-->Jit-->gc