单例模式1
public class Singleton {
// 静态变量,用于存储单例对象
private static Singleton instance;
// 私有构造方法,禁止从外部创建实例
private Singleton() {
}
// 获取单例对象的静态方法
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
单例模式2
public class Singleton {
// 使用volatile关键字确保instance变量的可见性
private volatile static Singleton instance;
// 私有构造方法
private Singleton() {
}
// 获取单例对象的静态方法
public static Singleton getInstance() {
// 第一次检查实例是否存在
Singleton localInstance = instance;
if (localInstance == null) {
// 实例不存在,进入同步块
synchronized (Singleton.class) {
// 再次检查实例是否存在
localInstance = instance;
if (localInstance == null) {
// 实例仍不存在,创建并初始化实例
instance = new Singleton();
}
}
}
return localInstance;
}
}