单例模式大家都知道,所以这片不算是分享,只是给我一个朋友写的
单例懒汉式饿汉式就不做比较了,主要说下线程安全
最简单的单例模式
public class Singleton {
private static Singleton sin=new Singleton();
private Singleton(){
}
public static Singleton getSingleton (){
return sin;
}
}
线程安全的单例模式
public class Singleton {
private static Singleton instance;
private Singleton (){
}
public static Singleton getInstance(){
if (instance == null){
synchronized(Singleton.class){
if (instance == null)
instance = new Singleton();
}
}
return instance;
}
}
切记要在创建方法上加锁,不要再get方法上加锁,这样只有在第一次调用的时候才会用上锁,用锁后代码执行效率会很低