关于java中单例模式的介绍(懒汉模式,饿汉模式)
懒汉模式:创建对象之前会做一非空判断,如果有现成的对象,就不创建新的,没有现成的就创建一个新的。程序代码:
package com.xiaoa.demo; /** * 懒汉模式 * * @author niyite * */ public class LazySingle { private static LazySingle newInstance = null; private LazySingle() { } public static LazySingle getnewInstance() { if (newInstance == null) { newInstance = new LazySingle(); } return newInstance; } }
加锁懒汉模式,在创建新对象之前加了一个同步锁,避免了多线程情况下的线程安全问题。
程序代码:
package com.xiaoa.demo; /** * 加锁懒汉模式 * * @author niyite * */ public class SyncLazySingle { private static SyncLazySingle newInstance = null; private SyncLazySingle() { } public static SyncLazySingle getnewInstance() { if (newInstance == null) { synchronized (SyncLazySingle.class) { if (newInstance == null) newInstance = new SyncLazySingle(); } } return newInstance; } }
饿汉模式:操作最简单
程序代码:
package com.xiaoa.demo; /** * 饿汉模式 * * @author niyite * */ public class HungrySingle { private static final HungrySingle newInstance = new HungrySingle(); public HungrySingle() { } public static HungrySingle getnewInstance() { return newInstance; } }
[此贴子已经被作者于2018-4-19 08:29编辑过]