单例模式
热门
{私有化构造方法,一般条件,double-CheckLocking,/**
*线程安全,创建时加载instance
*占用资源
*/
private static Singleton instance=new Singleton();
public static Singleton getInstance()
{
return instance;
},采用同步块
synchronized,饿汉模式,/**
*对整个方法进行同步不太好
*/
private static Singleton instance=null;
public synchronized static Singleton getInstance()
{
if(instance==null)
{instance=new instance;}
return isntance;
},/**
*对实例化对象instance进行同步
*同时对instance属性修饰为volatile(synchronized有可见性)
*/
private volatile static Singleton instance=null;
public synchronized static Singleton getInstance()
{
if(instance==null)
{
synchronized(Singleton.class)
{
if(instance==null)
instance=new instance;
}
}
return isntance;
},提供一个全局访问点,线程安全,Initialization on demand holder,/**
*线程不安全,调用方法时加载instance
*延迟加载
*/
private static Singleton instance=null;
public static Singleton getInstance()
{
if(instance==null)
{instance=new instance;}
return isntance;
},/**
*线程安全,又支持延迟加载
*/
private static class Holder{
private static final Singleton instance=new Singleton();
}
public static Singleton getInstance()
{
return Holder.instance;
},单例模式,懒汉模式,线程不安全}