返回

Java基础-单例

发布时间:2023-11-16 00:01:53 196


单例使用场景是什么?[面试6.0]

需要频繁实例化然后销毁的对象
创建对象时耗时过多或者耗资源过多,但又经常用到的对象
有状态的工具类对象
频繁访问数据库或文件的对象

如何在Java中创建线程安全的单例?[面试6.0]

饿汉式: 利用JVM构造时即new实例,暴露获取实例的方法,都是操作当前类,推荐用,唯一的缺点是没有静态内部类资源利用率高
懒汉式: 实例在第一次使用时被new实例化,不能使用,会产生并发问题
双重检测: 第一层判断实例是否为空,第二层做块同步再判断实例是否为空,不能使用,由于CPU指令重排序会导致有时返回null,可以加volatile来禁止重排序解决这个问题,但不推荐用
静态内部类: 静态内部类构建静态new对象,暴露静态的方法获取该内部类实例,推荐用


特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
Chrome 2023-11-15 20:57:24