1.使用JVM实现保证线程安全
public class Singleton
{
//私有构造方法
private Singleton(){}
//全局访问接口
public static Singleton getInstance()
{
return SingletonHolder.instance;
}
//类级内部类,也是静态成员式的内部类,该内部类的实例与外部类的实例没有任何绑定关系
//只有被调用才会被装载,从而实现了延迟加载
private static SingletonHolder
{
//静态初始化器,由JVM保证线程安全
private static Singleton instance = new Singleton();
}
}
2.迫切加载
publi class Singleton
{
private static Singleton instance = new Singleton();
private Singleton(){}
public static Singleton getStance()
{
return instance;
}
}
3.延迟加载
public class Singleton
{
private static Singleton instance;
private Singleton(){}
public synchronized static getInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
}