1.饿汉
单例模式 饿汉
1.私有的构造方法
目的是不让别人从外部调用
2.私有的该类类型的变量,必须是静态的
因为私有了构造方法 所以不能通过对象调用,只能静态调用
3.一个公共静态的方法 用来返回该类型变量的实例
缺点是:该类一旦被装载就会实例化 好多不用的对象都会直接创建 软件的启动效率会降低
优点:线程安全
class Singleton1{
private Singleton1(){}//私有构造
private static Singleton1 instance=new Singleton1();//私有的该类类型的静态变量
public static Singleton1 getInstance(){//一个共有的返回方法
return instance;
}
}
2.懒汉
单例模式 懒汉
1.一个私有的构造方法
2.一个私有的静态变量
3.一个共有的返回方法
缺点:线程不安全
优点:高效
解决:加入线程锁
class Singleton2{
private Si2ngleton2(){}//私有构造
private static Singleton2 instance;//私有的该类型的静态变量
public static Singleton2 getInstance(){//共有的静态返回方法
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}