单例模式
单例模式(Singleton Pattern)的主要目的是确保一个类只有一个实例,并提供一个全局访问点来访问该实例。
在 Java 中,实现单例模式的方式有几种常见的方式
懒汉式
public class Singleton{
private static final Singleton instance = null;
private Singleton(){}
public static synchronized Singleton getInstance(){
if(instance == null){
instance == new Singleton();
}
return instance;
}
}
懒汉式+双重检查
public class Singleton{
// volatile 保证多线程的修改后的可见性
private static final volatile Singleton instance = null;
private Singleton(){}
public static Singleton getInstance(){
if(instance == null){
synchronized(){
if(instance == null){
instance == new Singleton();
}
}
}
return instance;
}
}
饿汉式
public class Singleton{
private static final Singleton INSTANCE = new Singleton();
private Singleton(){}
public static Singleton getInstance(){
return INSTANCE;
}
}
枚举类
public enum Singleton{
INSTANCE;
// ... 定义其他变量及方法
}