
單例對象(Singleton)是一種常用的設計模式。在Java應用中,單例對象能保證在一個JVM中,該對象隻有一個執行個體存在。正是由于這個特 點,單例對象通常作為程式中的存放配置資訊的載體,因為它能保證其他對象讀到一緻的資訊。例如在某個伺服器程式中,該伺服器的配置資訊可能存放在資料庫或 檔案中,這些配置資料由某個單例對象統一讀取,服務程序中的其他對象如果要擷取這些配置資訊,隻需通路該單例對象即可。這種方式極大地簡化了在複雜環境 下,尤其是多線程環境下的配置管理,但是随着應用場景的不同,也可能帶來一些同步問題。
立即加載(餓漢模式)
說到标題,有人會說什麼是立即加載呢?立即加載就是使用類的時候已經将對象建立完畢了,比如說直接new執行個體化對象。也就是在調用方法之前,執行個體已經被建立了
複制代碼
public class MyObject {
private static MyObject myObject = new MyObject();
private MyObject(){
}
public static MyObject getInstance(){
return myObject;
}
}
看這段代碼,他的缺點是不能有其他執行個體變量。外部的使用者需要使用MyObject執行個體的時候,隻能通過getInstance方法,另外假如沒有用到這個執行個體的時候,他已經建立了出現,會有資源浪費的情況出現的。還有因為getInstance方法沒有同步,是以有可能出現非線程安全的問題。
“我們相信人人都可以成為一個IT大神,現在開始,選擇一條陽光大道,助你入門,學習的路上不再迷茫。這裡是北京尚學堂,初學者轉行到IT行業的聚集地。"