懒汉式
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;
}
}