概念单例模式:1构造方法是私有的 2.用私有的静态变量来接收单例
单例模式步骤
①构造方法私有化
②创建变量保存 对象private static
③提供一个方法 返回对象public static
1.2饿汉模式:在加载类信息时先创建对象(创建对象速度快),前提构造方法必须私有化
1.3懒汉模式: 在类加载的时候先不创建对象,而是在有人第一次来调用方法获得对象的时候才创建一个对象
class TestLine{
//目的:只能创建一个对象
public static void main(String[] args){
EHan e=EHan.getEHan();
EHan e1=EHan.getEHan();
//当instance属性不是私有的时候,可以修改该值,达不到单例的效果
EHan.eh=null;
System.out.println(e==e1);//说明是同一个对象true
LanHan lh=LanHan.getLanHan();
LanHan h=LanHan.getLanHan();
System.out.println(lh==h); //说明是同一个对象true
}
}
//饿汉模式:在加载类信息时先创建对象(创建对象速度快),前提构造方法必须私有化
class EHan{
//privare限于当前类static定义只一份·属于类
private static EHan eh=new EHan();
private EHan(){
}
//调用此方法只能创建一次对象
public static EHan getEHan(){
return eh;
}
}
//懒汉模式: 在类加载的时候先不创建对象,
//而是在有人第一次来调用方法获得对象的时候才创建一个对象
class LanHan{
private LanHan(){
}
private static LanHan lan;
public static LanHan getLanHan(){
if(lan==null){//null不存在对象就创建对象
lan=new LanHan();
}
return lan;
}
}