-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.单例模式概念
单例模式确保某一个类只有一个实例。而且自行实例化并向整个系统提供这个实例。
2.单例模式的特点
2.1 单例类只能有一个实例。
2.2 单例类必须自己创建自己唯一实例。
2.3 单例类必须给所有其他对象提供这一实例。
3.单例模式的有两种
3.1 饿汉式:特点是先初始化对象。
//饿汉式
public class Single {
//私有化本类对象
private static final Single s=new Single();
//私有化构造函数
private Single(){}
//公共getInstance()方法,返回该类对象
public static Single getInstance(){
return s;
}
}
当类装载的时候就会创建类的实例,不管你用不用,先创建出来,然后每次调用的时候,就不用再判断,节省了运行时间。
3.2 懒汉式:特点是用得到对象时再初始化对象。
//关于多线程访问,会出现安全问题,所以需要使用到synchronized同步代码块
class Single2{
//私有化该类类型的静态变量
private static Single2 s=null;
//私有化构造函数
private Single2(){}
private static Single2 getInstance1(){
if(s==null){
//同步代码块-->锁是本类.class
synchronized (Single2.class) {
if(s==null){
s=new Single2();
}
}
}
return s;
}
}
当类装载的时候都会进行判断,看是否需要创建实例,浪费判断的时间。