singleton的几种写法(孔乙己?)

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

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

//ex3
public class Singleton {
  static class SingletonHolder {
    static Singleton instance = new Singleton();
  }

  public static Singleton getInstance() {
    return SingletonHolder.instance;
  }
}

 

你可能感兴趣的:(Singleton)