《设计模式》之单例模式
一、饿汉式
类加载时就初始化创建单例对象,线程安全
不管是否使用,都创建对象可能会浪费内存。
public class HungrySingleton {
private HungrySinglenton(){}
private static final HungrySingleton hs = new HungrySingleton();
public static HungrySingleton getInstance(){
return hs;
}
}
二、懒汉式
在外部调用时才会加载,加锁保证线程安全,但效率低。
***三、双重检查锁
四、静态内部类
同时解决
饿汉式的内存浪费问题
懒汉式的线程安全问题
public class StaticSingleton {
private StaticSingleton(){}
public static StaticSingleton getInstance() {
return StaticClass.instance;
}
private static class StaticClass {
private static final StaticSingleton instance = new StaticSingleton();
}
}
浙公网安备 33010602011771号