单例模式

单例模式代码本身

class Singleton {

     // 将声明对象的工作发在全局变量中
     private  static Singleton instance;
    
     // 这个对象是为了在锁住这个类的时候的判断
     private  static Object object =  new Object();
    
     // 私有化构造方法,只有本身可以创建本身
     private Singleton(){}
    
     // 外部的类要创建这个类通过这个方法创建
     public  static Singleton getInstance(){
         if(instance ==  null){
             // 当对象为空的时候才进行synchronized对象
             synchronized(object){
                 // 双重判断是否为空,是考虑到多线程的时候,如果
                
// 两个线程通过了第一个null判断后,第一个线程锁定了
                
// object后,创建了一个对象,解锁,如果不在进行第二个null
                
// 判断的话,第二个线程就可以继续创建第二个对象,违反了
                
// 单例模式的单一对象的原则
                 if(instance ==  null){
                    instance =  new Singleton();
                }
            }
        }
          return instance;
    }
} 

 接下来是调用的代码

public  class Test {

     public  static  void main(String[] args) {
        Singleton.getInstance();
    }

} 


转载于:https://www.cnblogs.com/kgrdomore/p/4220124.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值