面向对象点滴
??????1.面向?qū)ο笞钪匾膸讉€(gè)概念:對(duì)象,類,接口,封裝,繼承,多態(tài)。
????????????1. 對(duì)象:在面向?qū)ο缶幊汤锩?#xff0c;萬事萬物都被視為對(duì)象,對(duì)象是對(duì)數(shù)據(jù)和操作的封裝。
????????????2. 類:對(duì)一類對(duì)象的抽象。
????????????3. 接口:一組功能契約。
????????????4. 封裝:隱藏對(duì)象細(xì)節(jié)。
????????????5. 繼承:通過繼承使得不必編寫更多的代碼,增加代碼的復(fù)用性。
????????????6. 多態(tài):面向?qū)ο蠓浅:玫奶匦?#xff0c;更是所有模式和構(gòu)架的基礎(chǔ)。多態(tài)允許運(yùn)行時(shí)決定實(shí)例化哪個(gè)子類,再結(jié)合反射機(jī)制,可以將該變化點(diǎn)推遲到配置文件。
?
??????2. CLR啟動(dòng)程序時(shí)會(huì)創(chuàng)建3個(gè)應(yīng)用程序域,分別為系統(tǒng)域,共享域和默認(rèn)域。
????????????系統(tǒng)域:負(fù)責(zé)創(chuàng)建共享域和默認(rèn)程序域。它將系統(tǒng)庫mscorlib.dll載入共享域。
????????????共享域:所有不屬于任何特定代碼將被加載到該域,包括基本類型等等。
????????????默認(rèn)域:是應(yīng)用程序域的一個(gè)實(shí)例,一般應(yīng)用程序在此域運(yùn)行。域之間的互訪問,要通過.net remoting代理來實(shí)現(xiàn)。每個(gè)應(yīng)用程序域都有自己的加載堆(高頻堆,低頻堆,代理堆),句柄表,接口虛表管理器和程序集緩存。
??????3. 一個(gè)簡(jiǎn)單應(yīng)用程序從CLR啟動(dòng)開始的一系列過程:
??????????CLR啟動(dòng)程序創(chuàng)建系統(tǒng)域,系統(tǒng)域負(fù)責(zé)加載共享域和默認(rèn)程序域的創(chuàng)建。加載共享域包括加載mscorlib.dll等核心庫。加載默認(rèn)程序域,主要是加載客戶程序的各個(gè)類型方法表,該方法表按照先基類后子類的順序排列,方法表元素的順序是:繼承的虛方法,新的虛方法,實(shí)例方法,靜態(tài)方法。而對(duì)象的創(chuàng)建過程是,遞歸分配父類的內(nèi)存空間并調(diào)用相應(yīng)的構(gòu)造函數(shù)初始化各字段,直到System.Object對(duì)象為止。對(duì)象內(nèi)存中包含:snycblc(同步塊索引),TypeHandle(類型句柄,指向方法表),Instance Fields(實(shí)例字段),StringLiterals(字符串標(biāo)簽).其中Instance Fields也是按照先父類再子類的順序創(chuàng)建。
??????4. 對(duì)于接口的實(shí)現(xiàn)機(jī)制?待深入
??????5. 對(duì)象繼承后,根據(jù)對(duì)象原則決定是調(diào)用父類的虛方法還是子類的虛方法;根據(jù)就近原則決定是調(diào)用父類的字段還是子類的字段。
?
轉(zhuǎn)載于:https://www.cnblogs.com/im/archive/2009/04/19/1439013.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
- 上一篇: 摄景基础知识一
- 下一篇: [转]要有梦----送给自己,希望自己能