CLR 公共語言運行庫數據庫
沒有CLR的存在,就不能講該中間件轉換成對應操做系統中的機器指令。編程
程序集是非徹底編譯的產物,它兼備了源代碼和本地代碼的特性,是一種介於源代碼和本地代碼之間的獨立存在的一種數據結構,它同時具備可讀性和可執行性。安全
程序集組成:IL、元數據、清單、資源等。數據結構
程序集特徵:語言獨立、二級制兼容、重用性、部署方便。框架
.NET程序集並非最終能夠運行在操做系統中的機器指令,它只是介於源代碼和機器指令之間的一箇中間件,沒有CLR的存在,就不能將該中間件轉換成對應操做系統中的機器指令。ide
可讀性:對於開發者來說,能夠從程序集中讀取出相似元數據、IL代碼或者資源等信息。函數
可執行性:對於最終用戶,程序集是能夠在CLR中運行的。this
一些編程約定:操作系統
一個線程能夠調用多個方法,而一個方法又能夠被多個線程調用。線程
哪一個線程調用了方法,哪一個線程就叫作這個方法的調用線程,方法在哪一個線程中運行,哪一個線程就是該方法的當前線程。
調用指咱們調用系統的方法,回調指系統調用咱們寫的方法。
.NET中的回調主要是經過委託來實現的。
兩種可能引發非線程安全的狀況:
①兩個線程訪問一個對象,前一個操做還未結束,後一個操做就開始了;②多個線程同事訪問一個對象。
託管資源(如內存)由CLR管理,非託管資源指對象使用到的一些託管環境以外(好比操做系統)的資源,.NET中對象使用到的非託管資源主要有IO流、數據庫鏈接、Socket鏈接、窗口句柄等各類直接與操做系統相關的資源。
框架算是不完整的應用程序,類庫多半指可以提供一些具體功能的類集合,它包含的內容和功能通常比框架更簡單。
JavaScript基於對象。
使用interface關鍵字定義的接口類型,它表明編程過程當中的一種「協議」,是代碼中調用方和被調用方必須遵照的契約,若是一方不遵照,那麼調用就不會成功:
1)調用方必須存在一個接口引用;2)被調用方必須實現該接口。
數據類型:
值類型賦值就是一種淺複製。
對象進行淺複製時,只將對象的直接成員一一拷貝,當對象包含有引用類型成員時,源對象與副本之間有關聯;
對象進行深複製時,會將對象的全部成員(包括直接成員與間接成員)依次進行拷貝,無論對象是否包含引用類型成員,源對象與副本都無任何關聯。
string類型是一個特殊引用類型,它的判等不一樣於其餘引用類型去比較對象引用是否指向堆中同一實例,而是和值類型判等一直,比較對象內容是否一一相等。除此以外,string類型仍是不可改變類型,對string對象的任何操做均不能改變該對象。
結構類型不支持繼承,能夠實現接口。
構造函數用於建立類的實例,並對實例進行初始化操做。通常狀況下,構造函數是實例構造函數。
派生類中只有繼承的虛方法或抽象方法能夠被重寫,而且靜態方法不能被重寫。
sealed(密封)與abstract(抽象類)互斥。
當類中某些成員不須要建立實例實現,則可將其聲明爲靜態類成員。
重載是方法的名稱相同,函數簽名不一樣,進行屢次重載以適應不一樣的須要;
重寫(override)是進行基類中函數的擴展或改寫,其簽名必須與被重寫函數保持一致。
this 引用類的當前實例;
base 派生類訪問基類成員。