Skip to content

Latest commit

 

History

History
30 lines (29 loc) · 842 Bytes

单例模式.md

File metadata and controls

30 lines (29 loc) · 842 Bytes

单例模式

1. 懒汉式单例

public class MySingle {  
    private MySingle() {}  
    private static MySingle mySingle; 
    public static MySingle getInstance() {  
         if (mySingle ==null ) {    
             mySingle = new MySingle();  
         }    
        return mySingle;  
    }  
}

2. 饿汉模式

public class MySingle1 {  
    private MySingle1() {}  
    private static final MySingle1 mySingle1=new MySingle1(); 
    public static MySingle1 getInstance() {  
        return mySingle1;  
    }  
}

3.总结

  1. 懒汉模式,只有调用对应方法,才会初始化类,导致不是线程安全的。
  2. 相反饿汉模式,一旦类加载,就会初始化,所以线程安全。

参见23种设计模式汇总整理