1.懒汉式,线程不安全
pubblic class Singleton{
private static Singleton instance;
private Singleton(){}
public static Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}
2.懒汉式,线程安全
public class Singleton{
private static Singleton instance;
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance==null){
instance=new Singleton();
}
return instance;
}
}
3.饿汉式
public class Singleton{
private static Singleton instance=new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return instance;
}
}
4.双检锁(DCL)
public class Singleton{
private volatile static Singleton singleton;
private singleton(){}
public static Singleton getSingleton(){
if(singleton==null){
synchorinze(singleton.class){
if(singleton==null){
singleton=new singleton();
}
}
return singleton;
}
5.登记式/静态内部类
public class Singleton{
private static class SingletonHolder{
private static final Singleton INSTANCE=new Singleton();
}
private Singleton(){}
public static final Singleton getInstance(){
return SingletonHolder.Instance;}
}
本文详细介绍了单例模式的五种实现方式:懒汉式(线程安全与不安全)、饿汉式、双检锁(DCL)及静态内部类方式,并提供了每种方式的代码示例。
1410

被折叠的 条评论
为什么被折叠?



