Java基础-单例
发布时间:2023-11-16 00:01:53 196
相关标签:
单例使用场景是什么?[面试6.0]
需要频繁实例化然后销毁的对象
创建对象时耗时过多或者耗资源过多,但又经常用到的对象
有状态的工具类对象
频繁访问数据库或文件的对象
如何在Java中创建线程安全的单例?[面试6.0]
饿汉式: 利用JVM构造时即new实例,暴露获取实例的方法,都是操作当前类,推荐用,唯一的缺点是没有静态内部类资源利用率高
懒汉式: 实例在第一次使用时被new实例化,不能使用,会产生并发问题
双重检测: 第一层判断实例是否为空,第二层做块同步再判断实例是否为空,不能使用,由于CPU指令重排序会导致有时返回null,可以加volatile来禁止重排序解决这个问题,但不推荐用
静态内部类: 静态内部类构建静态new对象,暴露静态的方法获取该内部类实例,推荐用
文章来源: https://blog.51cto.com/u_15881465/5860356
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报