學習筆記day08

2021-08-30 11:37:20 字數 1338 閱讀 8325

單例設計模式

上圖中,想要實現a,b的配置資訊共享,因為a,b是兩個new,所以必然是不同的物件,一種方法就是將其配置資訊全部設成靜態,但資訊很多時會導致儲存資訊過多。

單例設計模式流程:

1,主函式main進棧,定義s1

2,等號右邊,single載入進入方法區,接著是single的建構函式。s和getinstance載入進入方法區的靜態區。

3,接著,執行private static single s = new single();的等號右邊。new乙個sinlge類的物件進堆。分配首位址值0x0045,根據建構函式初始化,並把這個位址值靜態方法區的s。換句話說,s指向這個物件。

4,執行getinstance語,這個函式進棧。將s返回給s1,這時候即把s的位址給s1,那麼s1也指向了這個物件。getinstance彈棧。

5,main函式裡建立乙個變數s2,接著getinstance進棧,將s的位址給s2,s2也指向了這個物件。

6,最後判斷兩者是否相等。

1,主函式進棧,定義變數z。

2.等號右邊建立乙個物件zi,這是發現zi繼承fu。所以先去找fu。fu的**進入方法區。接下來zi的**進入方法區。

3.建立乙個zi類物件在堆內。分配首位址0x0045。

4.在0x0045這個物件中分配兩個空間。乙個存放父類的num,乙個存放子類的num,兩個預設初始化值都為0。然後父類num初始化為4,子類num初始化為5。

5.把0x0045給z,z指向了這個zi物件。

6.接著呼叫show方法,進棧,有乙個this所屬。this指向當前物件,0x0045。接下來列印this.num指向自己物件,super.num代表父類存在子類空間的num。

1,主函式進棧,定義變數z。要建立子物件,先去找子類,發現它的父類。

2,在方法區中載入fu的**。接著載入zi的**,zi的**裡有乙個super,指向其fu類。

3,建立zi物件在堆內,分配首位址。將首位址給z,z指向0x0022。

4,呼叫show1,發現zi裡面沒有,就去父類裡找。然後呼叫show2。若zi裡也有show1,那麼執行子類裡的。不去父類中找。

C 學習筆記day08

1 排序函式 void order int p1,int p2 sort ia 9,sizeof int orderint for int i 0 i 9 i coutpers 0 id 1 pers 0 age 29 strcpy pers 0 name liucy pers 1 id 2 per...

C 學習筆記day08 標準C語言

多函式程式 1 乙個程式可以由包含main函式在內的多個函式組成。函式的執行過程有嚴格的時間順序,乙個程式同一時間不能執行兩個程式。所有函式在執行時間上是連續的。被呼叫函式在執行完畢之後,要返回到呼叫函式繼續執行。2 不可以跨函式使用變數 變數的生命週期 3 被呼叫函式的返回值。乙個被呼叫函式,是可...

java基礎學習day08總結

1.物件導向,面向過程 1 物件導向,面向過程都是一種思想,物件導向是相對面向過程來來說的 面向過程強調的是執行的過程,而物件導向是將功能進行封裝,對功能進行呼叫,強調的是呼叫,比如人開啟門的過程,門開啟則是面向過程,而人開啟門則是物件導向的過程。2 物件導向的三大特點 封裝 繼承 多型 2.類和物...