您的位置:首页 > 职场人生

单例设计模式面试题

2018-03-01 00:28 381 查看
单例设计模式分为两种分为 :  饿汉式     懒汉式  。
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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: