懒汉式
public class Singleton {
private Singleton() {
};
private static Singleton single = null;
public static Singleton getInstance() {
if (single == null) {
single = new Singleton();
}
return single;
}
}
饿汉式
public class Singleton1 {
private Singleton1() {
};
private static Singleton1 single = new Singleton1();
public static Singleton1 getInstance() {
return single;
}
}
完整的饿汉式设计
public class Singlentonsyn {
private static volatile Singlentonsyn instance = null;
private Singlentonsyn() {
}
public static Singlentonsyn getInstance() {
if (instance == null) {
synchronized (Singlentonsyn.class) {
if (instance == null) {
instance = new Singlentonsyn();
}
}
}
return instance;
}
}
静态内部类实现线程安全的单例模式
public class SingletonHand {
private SingletonHand() {
}
private static class SingletonHandHandler {
private static SingletonHand instance = new SingletonHand();
}
public static SingletonHand getInstance() {
return SingletonHandHandler.instance;
}
}