java单例,懒汉&饿汉

  * 单例模式Singleton
 * 应用场合:有些对象只需要一个就足够了,如皇帝
  * 作用: 保证整个应用程序中某个实例有且只有一个
 * 区别: 饿汉模式的特点是加载类时比较慢,但运行是比较快-线程安全
           懒汉模式的特点是加载类时比较快,但运行时比较慢-线程不安全

1.饿汉

 1 //饿汉式单例类.在类初始化时,已经自行实例化 

2 public class Singleton1 {
 3     //私有的默认构造子

 4     private Singleton1() {}  5     //已经自行实例化 

 6     private static final Singleton1 single = new Singleton1();  7     //静态工厂方法 

 8     public static Singleton1 getInstance() {  9         return single; 10  } 11 }

2.懒汉

 1 //懒汉式单例类.在第一次调用的时候实例化 

 2 public class Singleton2 {

 3     //私有的默认构造子

 4     private Singleton2() {}

 5     //注意,这里没有final    

 6     private static Singleton2 single=null;

 7     //静态工厂方法 

 8     public synchronized  static Singleton2 getInstance() {

 9          if (single == null) {  

10              single = new Singleton2();

11          }  

12         return single;

13     }

14 }

 

你可能感兴趣的:(java)