/**
* 測試餓漢式單例模式
* @author carlosxu
*/public class hungrysingleton
//方法不用同步,呼叫效率高
public hungrysingleton getinstance()
}
/**
* 測試懶漢式單例模式
* @author carlosxu
*/public class lazysingleton
//每次呼叫都需要同步,併發效率低
public static synchronized lazysingleton getinstance()
return lazysingleton;
}}
/**
* 使用靜態內部類實現
* 執行緒安全,效率高,支援延遲載入
* @author carlosxu
*/public class staticclasssingleton
//建立靜態內部類實現單例模式,注意:內部建立物件要用屬性的方式,且屬性為靜態的。不可使用內部方法建立物件並返回
private static class singleton
//獲取內部類中的屬性
public static staticclasssingleton getsingletoninstance()
}
/**
* 雙重檢查鎖模式實現單例模式
* 執行緒安全,效率高,支援延遲載入,但是有時jvm不相容,會出錯,不建議使用
* @author carlosxu
*/public class doublecheckingsingleton
public static doublecheckingsingleton getinstance()
} doublecheckingsingleton=ds;
} return doublecheckingsingleton; }
}
/**
* 使用列舉方式實現單例模式
* 執行緒安全,呼叫效率高,不能實現延遲載入模式
* *
* @author carlosxu
*/class stu{}
public enum enumsingleton
public stu getstu()
}
實現單例模式的五種方法
二 懶漢式 懶漢式與餓漢式的區別 餓漢模式的特點是載入類時比較慢,但執行時獲取物件的速度比較快 執行緒安全 懶漢模式的特點是載入類時比較快,但執行時獲取物件的速度比較慢 執行緒不安全 三 第三種也叫雙重鎖檢測 這個模式將同步內容放到if內部,提高了執行的效率,不必每次獲取物件時都進行同步,只有第一次...
五種單例模式實現
public class hunger private final static hunger hunger newhunger public static hunger getinstance 多個執行緒安全,但無法進行懶載入,如果類成員很多,則占用的資源比較多 public class lazy...
七種方法實現單例模式
三 懶漢式應用例項 四 雙重檢查 推薦使用 五 靜態內部類 推薦使用 六 列舉 推薦使用 所謂類的單例設計模式,就是採取一定的方法保證在整個的軟體系統中,對某個類只能存在乙個物件例項,並且該類只提供乙個取得其物件例項的方法 靜態方法 比如hibernate的sessionfactory,它充當資料儲...