先谈谈什么是单例模式
首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:
1,该类只有一个实例
2,该类自行创建该实例(在该类内部创建自身的实例对象)
3,向整个系统公开这个实例接口
以上内容出处:http://www.cnblogs.com/snandy/archive/2011/04/07/2007717.html
1、饿汉式单例模式
特点是:在定义的一开始便new一个对象
public class Singleton
{
/* 饿汉式*/
private static final Singleton s = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return s;
}
}
2、懒汉式单例模式
特点是:在真正需要new一个对象的时候才new对象
public class Singleton
{
private static Singleton s = null;
private Singleton(){}
public static Singleton getInstance(){
if(s != null){
synchronized(Singleton.class){
if(s != null)
s = new Singleton();
}
}
}
}
根据上面两个代码,第二个代码就采用了懒加载,也就是说:懒加载是在对象真正需要被实例化的时候,才去实例化它。