- 单例设计模式
- 面试问题:
- 一般采用饿汉式
- 因为在多线程的时候不会出现问题
* - 懒汉式特点 实例的延迟加载
- 但在多线程时会出现安全隐患
- 加同步可决解问题
- 可加同步代码块
- 同步函数
- 用双重判断可决解效率问题
- 同步锁是 该类所属的字节码文件
/* - 单例设计模式
- 面试问题:
- 一般采用饿汉式
- 因为在多线程的时候不会出现问题
* - 懒汉式特点 实例的延迟加载
- 但在多线程时会出现安全隐患
- 加同步可决解问题
- 可加同步代码块
- 同步函数
- 用双重判断可决解效率问题
- 同步锁是 该类所属的字节码文件
*/
//饿汉式
/*
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){
s=new Single();
}
return s;
}
}
*/
//决解了安全隐患 但是出现了效率低下的问题
/*
class Single{
private static Single s=null;
private Single(){
}
public static synchronized Single getInstance(){
if(s==null){
s=new Single();
}
return s;
}
}
*/
class Single {
private static Single s = null;
private Single() {
}
public static synchronized Single getInstance() {
if (s == null) {//减少了判断锁的次数
synchronized (Single.class) {
if (s == null) {
s = new Single();
}
}
}
return s;
}
}
public class SingleDemo {
}
单例
最新推荐文章于 2024-10-11 09:20:41 发布