您的位置:首页 > 新闻 > 热点要闻 > 湛江市研发网站建设_网页生成长图_潍坊网站建设解决方案_青岛官网seo

湛江市研发网站建设_网页生成长图_潍坊网站建设解决方案_青岛官网seo

2025/3/13 6:00:29 来源:https://blog.csdn.net/qq_62366797/article/details/146047967  浏览:    关键词:湛江市研发网站建设_网页生成长图_潍坊网站建设解决方案_青岛官网seo
湛江市研发网站建设_网页生成长图_潍坊网站建设解决方案_青岛官网seo

1、饿汉式

        ①实现:在类加载的时候就初始化实例

        ②优点:线程安全

        ③缺点:实例在类加载的时候创建,可能会浪费资源

//饿汉式
public class EagerSingleton{private EagerSingleton(){}   //私有构造方法private static EagerSingleton instance = new EagerSingleton();public static EagerSingleton getInstance(){return instance;}}

2、懒汉式

        ①实现:在首次获取实例的时候再创建实例

        ②优点:延迟加载,节省资源

        ③缺点:线程不安全

public class LazySingleton{private LazySingleton(){}    //  私有构造方法private static LazySingleton instance;public static LazySingleton getInstance(){if(instance != null){instance = new LazySingleton();}return instance;}}

3、双重检查锁

        ①实现:通过双重检查+加锁+volatile方式实现

        ②优点:线程安全

        ③缺点:稍微复杂

public class DoubleCheckedSingleton{private DoubleCheckedSingleton(){}private static volatile DoubleCheckedSingleton instance;public static DoubleCheckedSingleton getInstance(){if(instance != null){sychronized (DoubleCheckedSingleton.class){if(instance != null){instance = new DoubleCheckedSingleton();}}}return instance;}}

4、静态内部类

        ①实现:静态内部类创建示例

        ②优点:线程安全

        ③缺点:无法通过参数构造实例

public class InnerClassSingleton{private InnerClassSingleton(){}private static class SingletonHolder{private static final InnerClassSingleton instance = new InnerClassSingleton();}public static InnerClassSingleton getInstance(){return SingletonHolder.instance;}
}

5、枚举

        ①实现:通过枚举类型天然的单例特性实现

        ②优点:线程安全、代码简洁、防止反射和序列化破坏单例

        ③缺点:属于饿汉式,会浪费资源

public emun EnumSingleton{INSTANCE;
}

Runtime类就是通过饿汉式的方式实现的单例模式

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com