1、單例模式:解決一個類在內存中只有一個對象問題。主要有餓漢式和懶漢式兩種形式:
餓漢式:類在方法區加載時就創建實例初始化,線程安全,但是每次初始化會增加額外的開銷
class Single{
private static Single s = new Single();
private Single(){}
public static Single getInstance(){
return s;
}
懶漢式:類在方法區加載時沒有常見對象實例,只有當需要時才初始化對象;但是這樣是線程不安全的,需要同步處理
class Single {
private static Single s = null;
private Single(){}
public static Single getInstance() {
if (s == null) {
synchronized (Single.class) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
}