1.懒汉式(单线程不安全)
class singleton{ private static singleton st; private void singleton() { } public static singleton getSingleton(){ if(st==null){ st=new singleton(); } return st; }2多线程保证线程安全
class singleton{ private static singleton st; private void singleton() { } public static synchronized singleton getSingleton(){ if(st==null){ st=new singleton(); } return st; } }3.饿汉式
public class Singleton { private static Singleton instance=new Singleton(); private Singleton(){ } public static Singleton getInstance(){ return instance; } }4静态内部类
public class Singleton { private Singleton(){ } private static class SingletonHolder{ private final static Singleton instance=new Singleton(); } public static Singleton getInstance(){ return SingletonHolder.instance; } }5同步锁
public class Singleton { private static Singleton instance=null; private Singleton(){ } public static Singleton getInstance(){ if(instance==null){ synchronized(Singleton.class){ if(instance==null){ instance=new Singleton(); } } } return instance; } }