/** * 饿汉式(静态常量) * 优点:这种写法比较简单,在类装载的时候就完成实例化。避免了线程同步问题。 * 缺点:在类装载的时候就完成实例化,没有达到Lazy Loading的效果。如果从始至终从未使用 过这个实例,则会造成内存的浪费。 * * @author JsonLiangyoujun * **/ public class HungryMan { /*初始化实例*/ private static final HungryMan hungryMan = new HungryMan(); /*对外提供获得实例调用方法*/ public static HungryMan getHungryMan() { return hungryMan; } /*必须私有化构造方法才能达到单例效果*/ private HungryMan(){}; }
/** * 饿汉式(静态代码块) * @author JsonLiangyoujun * **/ public class HungryMan { private static HungryMan hungryMan; static{ hungryMan = new HungryMan(); } public static HungryMan getHungryMan() { return hungryMan; } private HungryMan(){}; }
/** * 懒汉式(线程同步) * 优点:这种写法比较简单,达到了Lazy Loading的效果。解决了线程同步问题。 * 缺点:效率太低了,每个线程在想获得类的实例的时候,执行getLazyMan()方法都要进行同步。 * 而其实这个方法只执行一次实例化代码就够了,后面的想获得该类实例,直接return就行了。 * * @author JsonLiangyoujun * **/ public class LazyMan { private static LazyMan lazyMan; private LazyMan(){}; public static synchronized LazyMan getLazyMan() { if(lazyMan == null){ lazyMan = new LazyMan(); } return lazyMan; } }
/** * 懒汉式(双重检查) * 优点:线程安全;延迟加载;效率较高。 * * @author JsonLiangyoujun * **/ public class LazyManDoubleCheck { private static volatile LazyManDoubleCheck lazyMan; private LazyManDoubleCheck(){}; public static LazyManDoubleCheck getLazyMan() { if(lazyMan == null){ lazyMan = new LazyManDoubleCheck(); synchronized (LazyManDoubleCheck.class) { if (lazyMan == null) { lazyMan = new LazyManDoubleCheck(); } } } return lazyMan; } }
/** * 静态内部类式 * 优点:避免了线程同步问题,延迟加载,效率高。。 * * @author JsonLiangyoujun * **/ public class StaticInnerClass { private StaticInnerClass(){} private static class StaticInnerClassInstance{ private static final StaticInnerClass staticInnerClass = new StaticInnerClass(); } public static StaticInnerClass getStaticInnerClass(){ return StaticInnerClassInstance.staticInnerClass; } }
/** * 枚举式 * 优点:避免多线程同步问题,而且还能防止反序列化重新创建新的对象。 * * @author JsonLiangyoujun * **/ public enum Singleton { INSTANCE; public void whateverMethod() {} }
95崔国权(mobei) 2025-04-02
95崔国权(mobei) 2025-04-02
95崔国权(mobei) 2025-04-02
藏家519 2025-04-03
马踏飞燕 2025-04-03
1 2025-04-03
彭于晏东北分晏 2025-04-02
藏家574 2025-04-02
一耶暴富 2025-04-02
藏家197 2025-04-02