首页 > 代码库 > 单例模式

单例模式

 

 1 public class Singleton 2 { 3          private static Singleton singleton = new Singleton();//类加载了便初始化该单例对象 4                                                                                                                                    //之所以称之为饿汉式,因为他太急了 5          private Singleton() 6          { 7          } 8          public static Singleton getInstance() 9          {10                    return singleton;11          }12 }

 

 1 public class Singleton 2 { 3          private static Singleton singleton; 4   5          private Singleton() 6          { 7          } 8          //注意这里synchronized,保证了线程安全,意思就是每次只有一个线程能够访问该方法 9          public static synchronized Singleton getInstance()10          {11                    if(singleton == null)12                    {//当singleton要用的时候才初始化,加判断避免重复初始化,保证只new了一次13                             singleton= new Singleton();14                    }15                    return singleton;16          }17 }

 

 

 1 public class Singleton 2 { 3          private static Singleton instance = null; 4   5          private Singleton() 6          { 7                    //dosomething 8          } 9  10          public static Singleton getInstance()11          {12                    if(instance == null)13                    {14                             synchronized(Singleton.class)//可以思考一下,为什么这样提高效率15                             {16                                      if(null == instance)17                                      {18                                                instance= new Singleton();19                                      }20                             }21                    }22                    return instance;23          }24 }

 

单例模式