線程安全,調用效率高,不能延時加載,能夠自然的防止反射和反序列化調用安全
public enum SingletonFactory { //枚舉元素自己就是單例 INSTANCE; //添加本身須要的操做 public SingletonObject getInstance(){ return new SingletonObject(); } }
線程安全,調用效率高,能夠延時加載, 使用內部類的好處是,靜態內部類不會在單例加載時就加載,而是在調用getInstance()方法時才進行加載,達到了相似懶漢模式的效果,而這種方法又是線程安全的.線程
public class SingletonFactory { public static SingletonObj getInstance() { return SingletonObj.instance.context; } private static class instance { private static final SingletonObj context = new SingletonObj(); } }