单例设计模式面试题

单例设计模式分为两种分为 :  饿汉式     懒汉式  。

1. 懒汉式与饿汉式有什么不同?

答:懒汉式的特点在于实例延迟加载。

2.懒汉式延迟加载有木有问题?如果有怎么解决?

答:有,如果多线程访问时,会出现安全问题;

解决办法:可以加同步来解决,而加同步的方式同步代码块与同步方法都行,但是稍微有一些低效;用双重判断的形式能解决效率问题。

3.加同步的时候使用的锁是哪一个?

答:该类所属的字节码文件对象(类名.class)。

----------------------------------------------------------------------------------

饿汉式示例:class Single{
 
 private static final Single s= new Single();
 private Single(){}
 public static Single getInstance(){
 

     return s;

     }

}

--------------------------------------------

懒汉式示例:

class Single{

private static Single s = null;
private Single() {}
public static Single getInstance() {
//双重判断提高效率。
if(s == null) {

synchronized(Single.class) {

       if(s == null) {

s = new Single();

}

}

}
return s;

}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值