单例设计模式:懒汉式 和 饿汉式
// 对象先初始化(先创建再说)
// 称为:饿汉式
class Single {
private Single() {}
private int num;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
private static Single s = new 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;
}
}
注意: 开发一般用饿汉式,当多个人调用Single类时,懒汉式存在隐患,多个线程运行的时候会使程序崩溃
//懒汉式--多线程
class Single {
private static Single s = null;
private Single() {}
public static Single getInstance() {
if(s == null) { //提升效率
synchronized(Single.class) { //Single.class的锁
if(s == null)
s = new Single();
}
}
return s;
}
}