1、双重校验锁(JDK1.5版本之后)
public class Singleton { private volatile static Singleton singleton; private Singleton(){ } public static Singleton getSingleton(){ if(singleton == null){ synchronized(Singleton.class){ if(singleton == null){ singleton = new Singleton(); } } } return singleton; } }
2、静态内部类
public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } private Singleton (){} public static final Singleton getInstance() { return SingletonHolder.INSTANCE; } }
本文出自 “阿酷博客源” 博客,谢绝转载!
原文地址:http://aku28907.blog.51cto.com/5668513/1840219