单例设计模式:
懒汉式(延迟加载 等你需要的时候再创建对象 在多线程中会出现安全问题):
解决安全问题 加了同步操作 但是会降低效率 怎么解决效率低的问题 在单例模式中用if对单例对象进行双重判断解决。
class Single{
private static Single s = null;
private Single () {
}
public static Single getInstense{
if( s == null)
s = new Single();
return s;
}
}
解决安全问题:
class Single{
private static Single s = null;
private Single () {
}
public static Single getInstense{
if( s == null){
synchronize(Single.class) {
if( s == null)
s = new Single();
}
}
return s;
}
}
饿汉式(不管你需不需要这个对象创建了再说 在多线程中对对象的操作只有一条 所以相对安全):
class Single{
private static final Single Single_getInsense = new Single();
private Single(){
}
public static Single getInstense{
return Single_getInsense;
}
}