public class HungrySingleton{
// 比较安全的方式
private static final HungrySingleton instance = new HungrySingleton();
private HungrySingleton(){
}
public static HungrySingleton getInstance(){
return instance;
}
}
二:懒汉式单利模式
/**
* 懒加载的话 如果多线程 可能存在创建多个instance实例
*/
public class LazySingleton {
private static LazySingleton instance;
private LazySingleton (){}
public static LazySingleton getInstance(){
if(instance ==null){
instance = new LazySingleton ();
}
return LazySingleton .instance;
}
}
三:加锁方式
/**
* synchronized可以解决多线程情况下创建多个instance情况,
* 但是影响性能,加锁使程序串行化
* */
public class SynSingleton{
private static SynSingleton instance;
private SynSingleton(){}
public synchronized static SynSingleton getInstance(){
if(instance ==null){
instance = new SynSingleton();
}
return SynSingleton.instance;
}
}