/**
* 饿汉式
*
*/
class SingleHungry {
private static final SingleHungry sH = new SingleHungry();//final修饰表示对变量常量化,不可改变其值
private SingleHungry(){//私有化构造函数,不可通过new来创建对象
}
public static SingleHungry getInstance(){//静态函数,表示通过类名.函数 调用该函数达到创建单例对象的效果
return sH;
}
}
/**
* 懒汉式
*
*/
class SingleLazy{
private static SingleLazy sL = null;//注意:这里不能加final修饰,因为final修饰后该变量就该常量化,后面的程序不可改变其值了
private SingleLazy(){//私有化构造函数,不可通过new来创建对象
}
public static SingleLazy getInstance(){
if(sL==null){//为了提高效率,优化加同步锁造成的效率问题
synchronized(SingleLazy.class){
if(sL== null)//对多线程中的共有数据进行同步,以达到单例的效果
sL= new SingleLazy();
}
}
return sL;
}
}
|
|