单例模式
方式一:饿汉式
/** * 饿汉式 */ public class HungryStyle { private static HungryStyle hungryStyle = new HungryStyle(); private HungryStyle(){ } public static HungryStyle getInstance() { return hungryStyle; } }
方式二:懒汉式(有线程安全问题需解决)
/** * 解决懒汉式单例模式的线程安全问题 */ public class LazyStyle { private static LazyStyle lazyStyle = null; private LazyStyle(){ } public static LazyStyle getInstance() { //提高效率,当实例被创建,则后续进程不需要进入同步代码块 if (lazyStyle == null) { synchronized (LazyStyle.class) { if (lazyStyle == null) { lazyStyle = new LazyStyle(); } } } return lazyStyle; } }