单例模式

xiaoxiao2021-02-28  76

初学单例模式,写的是这种,最简单的懒汉模式

public class Singleton {       private static Singleton instance;       private Singleton (){}          public static Singleton getInstance() {       if (instance == null) {           instance = new Singleton();       }       return instance;       }   }  

后来面试,觉得一直加一种

public class Singleton {       private static Singleton instance;       private Singleton (){}       public static synchronized Singleton getInstance() {       if (instance == null) {           instance = new Singleton();       }       return instance;       }   }   觉得自己写的老牛逼了。

其实深入来说只有双重校验才能真正的单例模式

public class Singleton {       private volatile static Singleton singleton;       private Singleton (){}       public static Singleton getSingleton() {       if (singleton == null) {           synchronized (Singleton.class) {           if (singleton == null) {               singleton = new Singleton();           }           }       }       return singleton;       }   }  

转载请注明原文地址: https://www.6miu.com/read-58351.html

最新回复(0)