码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2017-09-11 18:11:23      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:nal   final   ==   懒汉   bsp   ati   --   静态内部类   nbsp   

饿汉模式

public class Singleton {  
    private static Singleton instance = new Singleton();  
    private Singleton (){}  
    public static Singleton getInstance() {  
    return instance;  
    }  
}  








另类饿汉单例模式


public
class Singleton { private Singleton instance = null; static { instance = new Singleton(); } private Singleton (){} public static Singleton getInstance() { return this.instance; } }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


懒汉模式 (懒汉,线程安全)
public class Singleton{
  private static Singleton instance;
  private Singleton(){}
  public static synchronized Singleton getInstance(){
    if(instance==null){
      instance=new Singleton();
    }
    return instance;
  }
}

懒汉模式 (懒汉,线程安全)--双检锁模式

public class Singleton {  
    private volatile static Singleton singleton;  
    private Singleton (){}  
    public static Singleton getSingleton() {  
    if (singleton == null) {  
        synchronized (Singleton.class) {  
        if (singleton == null) {  
            singleton = new Singleton();  
        }  
        }  
    }  
    return singleton;  
    }  
}  

 




静态内部类

public class Singleton {  
    private static class SingletonHolder {  
    private static final Singleton INSTANCE = new Singleton();  
    }  
    private Singleton (){}  
    public static final Singleton getInstance() {  
    return SingletonHolder.INSTANCE;  
    }  
}  

 






 

单例模式

标签:nal   final   ==   懒汉   bsp   ati   --   静态内部类   nbsp   

原文地址:http://www.cnblogs.com/slowcity/p/7505596.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!