person p = new person() 的執行過程
1.載入person,class檔案到記憶體中;
2.執行類中的靜態的初始化
3.堆中開闢空間,分配位址;
4.建立屬性,屬性預設初始化;
5.對屬性顯示初始化(及剛開始定義屬性時賦值)
6.對物件進行構造**初始化;
7.對物件進行函式初始化;
8.將位址賦給棧中記憶體中的變數;
1.意義:解決乙個類只能例項化乙個物件『
2.,過程:(1)先控制其他程式建立物件建構函式加private關鍵字
(2)還要建立乙個物件,只有在本類中建立物件、
(3)提供訪問方法。
3.提供兩種解決方法(1)餓漢式(工程中常用方法)(2)懶漢式(工程中不用,面試常考)
/*
餓漢式特點:安全,簡單。先初始化物件;
*/class single
private static single s =new single();
public static single getinstance() }
/*懶漢式
特點:不安全,物件時方法呼叫時初始化,也叫延時載入。
*/class single
private static single s = null;
public static single getinstance() }
/*懶漢式——安全解決方式一:函式加鎖
特點:效率低(每次訪問進行判斷)
*/class single
private static single s = null;
public static synchronized single getinstance() }
/*懶漢式——安全解決方式二:過程加鎖
特點:只判斷一次
*/
class single
private static single s = null;
public static single getinstance()
}return s;
}}
Java學習 單例設計模式
設計模式 是對問題行之有效的方法,是一種思想。單例模式 在其所解決的問題中,乙個類中只有乙個物件存在。這乙個物件好比是乙個共同資料,多個程式操作的其實這乙個物件。q1 如何保證物件唯一性?1.不允許其他程式new乙個物件 2.在這個類中就已經存在乙個物件 3.通過方法來讓其他程式來獲取這唯一的物件 ...
設計模式學習(Java) 單例模式
其實我們在程式設計過程中往往都用到了一些設計模式,只是不知道他們還有具體的名稱定義 翻閱了 設計模式之禪 後,覺得自己有必要系統地了解和學習一下程式設計的原則和一些常用的設計模式。為了加深自己的理解,在此記錄一下。單例模式 顧名思義,就是指某乙個類在程式中只會有乙個例項。為什麼使用單例模式?1 節省...
java設計模式 單例模式 學習筆記
1 為什麼使用單例設計模式?為了避免多個例項造成資源浪費,與避免多例項多次呼叫出現的錯誤 2 什麼是單例設計模式?單例模式能夠保證整個應用中有且只有乙個例項 3 怎麼使用單例模式?1 私有化該類的建構函式 2 在 本類中new乙個物件 3 定義乙個公有的方法,返回由該類建立的物件 4 單例模式的寫法...