单例模式:
三要素:
1、私有的构造方法;
2、私有的静态的实例对象;
3、公共的静态的提供访问方法;
根据单例模式的创建时机可以将其分为两种类型:
1、懒汉模式:在系统初始化时不会做初始化,会在什么时候使用到时做初始化操作。
public class Ehanmoshi{
private static Lanhanmoshi ehanmoshi=null;
private Lanhanmoshi (){
system.out.println("初始化懒汉模式");
}
public static Lanhanmoshi getLanhanmoshi(){
if(lanhanmoshi==null){
lanhanmoshi=new Lanhanmoshi ();
}
return lanhanmoshi;
}
}
2、饿汉模式:在系统初始化时就已经初始化完成。
public class Ehanmoshi{
private Ehanmoshi(){
system.out.println("饿汉模式初始化");
}
private static Ehanmoshi ehanmoshi=new Ehanmoshi();
public static Ehanmoshi getEhanmoshi(){
return ehanmoshi;
}
}
总结:懒汉模式在多线程中可能会造成返回单例模式的为多个,破坏单例模式。可以在返回实例的公共方法上加入
synchronized 修饰符修饰。