单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
常见的五种单例模式:
1、懒汉式:线程安全、调用率低、支持延时加载
2、饿汉式:线程安全、调用率高、不延时加载
3、双重检测锁式
4、静态内类式
5、枚举单例
其中懒汉式和饿汉式较常用
(注:反射和反序列化可以破解单利模式)
示例代码:
//饿汉式
public class test01{
private static test01 s=new test01();
private test01(){}//构造器私有化
public static test01 getInstance(){
return s;
}
}
//懒汉式
public class test02{
private static test02 s;
private test02 (){}//构造器私有化
public static synchronized test02 getInstance(){
if(s==null){
s=new test02();
}
return s;
}
}