1. /**
    2. * 懒汉式
    3. * 1.用时创建对象
    4. */
    5. public class Single {
    6. private Single(){}
    7. public static Single instance = null;
    8. public static Single getInstance() {
    9. if (null == instance) {
    10. //多个线程判断instance都为null时,
    11. / /在执行new操作时多线程会出现重复情况
    12. instance = new Single();
    13. }
    14. return instance;
    15. }
    16. }
    1. /**
    2. * 双重检测,懒汉式模式添加同步,效率低
    3. * 1.用时创建对象
    4. */
    5. public class Single {
    6. private Single(){}
    7. public static Single instance = null;
    8. public static Single getInstance() {
    9. if (null == instance) {
    10. synchronized (Single.class) {
    11. if (null == instance) {
    12. instance = new Single();
    13. }
    14. }
    15. }
    16. return instance;
    17. }
    18. }