classSingle{privatestatic Single instance;privateSingle(){}publicstatic Single getInstance(){if(instance==null){
instance=newSingle();}return instance;}}
classSingle{privatestatic Single instance;privateSingle(){}publicstatic Single getInstance(){synchronized(Single.class){if(instance==null){
instance=newSingle();}}return instance;}}
classSingle{privatestaticvolatile Single instance;privateSingle(){}publicstatic Single getInstance(){if(instance==null){synchronized(Single.class){if(instance==null){
instance=newSingle();}}}return instance;}}
静态内部类 采用了类加载的机制保证安全,而且效率也很高。
classSingle{publicSingle(){}publicstatic Single getInstance(){return InnerInstance.instance;}privatestaticclassInnerInstance{privatestatic Single instance=newSingle();}}
静态代码块
classSingle{privatestatic Single instance;publicSingle(){}static{
instance=newSingle();}publicstatic Single getInstance(){return instance;}}
枚举类
classSingle{privateSingle(){}publicstatic Single getInstance(){return EnumSingle.INSTANCE.getInstance();}privateenum EnumSingle{
INSTANCE;private Single instance;privateEnumSingle(){
instance=newSingle();}private Single getInstance(){return instance;}}}