public class Singleton {
private static Singleton singleton;
private Singleton(){
}
public static Singleton getInstance(){
//其中两次判断singleton == null的原因:当实例已经创建后,我们不需要再做加锁操作
if(singleton == null){ //如果不要这一行,每次getInstance时都会加一个同步锁,而加锁是一个非常耗时的操作,应尽量避免。
synchronized (Singleton.class){
if(singleton == null){
singleton = new Singleton();
}
}
}
return singleton;
}
}