Java单例模式(双重检查)

今天又想起了单例模式,看了网上好多文章,加锁和可见性。自己也写了一遍单例模式。

public class SingleTon {
    private SingleTon(){
    }
    private static volatile SingleTon singleTon=null;
    public  static  SingleTon getInstance(){
        if(singleTon==null){
            synchronized(SingleTon.class){
                if(singleTon==null){
                    singleTon=new SingleTon();
                }
            }
        }
        return  singleTon;
    }
}

另外一种实现方式就是内部静态类。

public class SingleTon2 {
    private SingleTon2(){
    }
    private  static class  SingleTonHolder{
      static   SingleTon2 singleTon2=new SingleTon2();
    }
    public  static  SingleTon2 getInstance(){
        return  SingleTonHolder.singleTon2;
    }
}

猜你喜欢

转载自blog.csdn.net/zs742946530/article/details/83049091
今日推荐