构造单例模式有两种常见的方式,其中第一种方式在多线程的系统中并不能保证单例,而第二种方式很好的解决了这个问题。
第一种方式:
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance(){
return instance;
}
public void show(){
System.out.println("第一张构造单例的方式");
}
}
第二种方式:
public class Singleton {
private Singleton(){}
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
if(instance == null)
instance = new Singleton();
return instance;
}
public void show(){
System.out.println("第一张构造单例的方式");
}
}