常用单例

2017-10-25  本文已影响22人  eirunye

1.双重校验

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

2.懒汉式

public class Singleton{
private static Singleton instance;
private Singleton(){};
public static synchronized Singleton getInstance(){
    if(null == instance){
       instance = new Singleton();
      }
    return instance;
 }
}
  1. 饿汉式
public class Singleton{
private static Singleton instance = new Singleton();
private Singleton(){};
public static Singleton getInstance(){
   return instance; 
  }
}
上一篇 下一篇

猜你喜欢

热点阅读