1、单例模式:解决一个类在内存中只有一个对象问题。主要有饿汉式和懒汉式两种形式:
饿汉式:类在方法区加载时就创建实例初始化,线程安全,但是每次初始化会增加额外的开销
class Single{
private static 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;
}
}