- //懒汉式
- public class SingletonA {
- public static SingletonA instance = null;
- private SingletonA(){ }
- public static SingletonA getSingletonA(){
- if(instance == null){
- instance = new SingletonA();
- }
- return instance;
- }
- }
- //饿汉式
- public class SingletonB {
- private static SingletonB instanceB = new SingletonB();
- private SingletonB(){}
- public static synchronized SingletonB getInstance(){
- return instanceB;
- }
- }
- //双重锁定
- public class SingletonC {
- private static SingletonC instance = null;
- private SingletonC(){};
- public static SingletonC getInstance(){
- if(instance == null){
- synchronized (SingletonC.class) {
- if(null == instance){
- instance = new SingletonC();
- }
- }
- }
- return instance;
- }
- }