------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
第5题:编写一个延迟加载的单例设计模式。
思路:1.类进内存对象还没有存在,只有调用方法时才建立对象,对象是方法被调用时才初始化,也叫做对象的延时加载
2.单例设计模式分两种,一种是懒汉式,一种是饿汉式。其中懒汉式就是延迟加载的单例设计模式
3.懒汉式会出现线程安全问题,如果想解决可以进行双重判断
4.两种单例设计模式的区别?
第一种(饿汉式):对象随着类的加载而创建
第二种(懒汉式):需要使用的时候,再创造对象,以后使用的是同一个对象。
使用场合:
工作的时候: 第一种
面试的时候: 第二种
原因: 第二种,会出现线程安全问题
下面是详细代码:
class Single{
private static Single s = null;
private Single(){}//构造函数私有化,防止其他类创建该类对象
//提供一个public方法,对外访问
public static Single getInstance(){
//判断
if(s==null)
s = new Single();
return s;
}
}
public class Test_05 {
public static void main(String[] args) {
Single s1=Single.getInstance();
Single s2=Single.getInstance();
System.out.println(s1==s2);
}
}