开发者社区> 问答> 正文

JAVA中实现单例(Singleton)模式的方式有哪些?

JAVA中实现单例(Singleton)模式的方式有哪些?

展开
收起
gxx1 2022-04-01 00:09:51 590 0
1 条回答
写回答
取消 提交回答
  • 1、饿汉式,在类装载的时候就完成实例化。避免了线程同步问题,但是没有达到Lazy Loading的效果,可能会造成内存的浪费。

    2、懒汉式,起到了Lazy Loading的效果,但是只能在单线程下使用。但是它的效率很低,也不能起到线程同步的作用。

    3、双重检查,实例化代码只用执行一次,后面再次访问时,判断if (singleton == null),直接return实例化对象。它的线程安全;延迟加载;效率较高。

    4、静态内部类,与饿汉式方式采用的机制类似。都采用了类装载的机制来保证初始化实例时只有一个线程。它需要在实例化时,调用getInstance方法,才能装载SingletonInstance类,完成Singleton的实例化。

    2022-04-01 00:13:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载