java 单例模式分为懒汉式和饿汉式
懒汉式:时间换空间 需要加锁保证线程安全
饿汉式:空间换时间 无需加锁线程安全
在《研磨设计模式》一书中介绍了一种叫做:Lazy initialization holder class 模式,这个模式综合使用了java的类级内部类和多线程缺省同步的知识,很巧妙的实现了延迟加载和线程安全。
public class Singleton
{
private static class SingletonHolder
{
private static Singleton instance = new Singleton();
}
private Singleton()
{
// 构造函数私有化,保证不会被主动创建
}
public static Singleton getInstance()
{
return SingletonHolder.instance;
}
}
转载于:https://blog.51cto.com/mk78x/1251002