1.懒汉模式
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static synchronized Singleton getInstance(){
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
在代码中使用的 synchronized 是为了保证单例对象唯一性的。
2.Double Check Lock (DCL 双重检查锁定)
public class Singleton {
private static Singleton mInstance = null;
private Singleton() {
}
public void doSomething() {
System.out.println("do sth.");
}
public static Singleton getInstance() {
if (mInstance == null) {
synchronized (Singleton.class) {
if (mInstance == null) {
mInstance = new Singleton();
}
}
}
return mInstance;
}
}
3.静态内部类
public class Singleton {
private Singleton() {
}
public static Singleton getInstance() {
return SingletonHolder.sInstance;
}
public static class SingletonHolder {
private static final Singleton sInstance = new Singleton();
}
}
单例模式详解
本文详细介绍了三种实现单例模式的方法:懒汉模式、DoubleCheckLock(双重检查锁定)及静态内部类方式。懒汉模式通过同步方法确保实例唯一;DoubleCheckLock采用双重检查提高效率;静态内部类利用Java类加载机制保证线程安全。
677

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



