• 【Java面试题】面试刷完高手回答,直接开挂回答!SimpleDateFormat 是线程安全的吗 为什么?


    “SimpleDateFormat 是线程安全的吗? 为什么?”

    这是一个针对1~3年的Java开发经验的面试题,你能回答出来吗?

    这个问题的高手回答我整理到了15W字的面试文档里面大家可以扫描文章尾端二维码领取

    下面看看高手的回答

    大家记得点赞收藏加关注

    需要高手面试文档面试文档的小伙伴可以扫描文章底部二维码

    高手:

    SimpleDateFormat不是线程安全的,SimpleDateFormat类内部有一个Calendar对象引用,它用来储存和这个SimpleDateFormat相关的日期信息。

    当我们把SimpleDateFormat作为多个线程的共享资源来使用的时候。

    意味着多个线程会共享SimpleDateFormat里面的Calendar引用,多个线程对于同一个Calendar的操作,会出现数据脏读现象导致一些不可预料的错误。

    在实际应用中,我认为有4种方法可以解决这个问题。

    • 第一种,把SimpleDateFormat定义成局部变量,每个线程调用的时候都创建一个新的实例。

    • 第二种,使用ThreadLocal工具,把SimpleDateFormat变成线程私有的

    • 第三种,加同步锁,在同一时刻只允许一个线程操作SimpleDateFormat

    • 第四种,在Java8里面引入了一些线程安全的日期API,比如LocalDateTimer、DateTimeFormatter 等。

    总结

    线程安全是一个非常严重且隐秘的问题。

    虽然现在很多框架都在刻意屏幕复杂性,但是多线程的问题总是绕不开的。

    因此多线程是大厂最基本的考察内容。

    另外,我将所有Java面试系列制作成了完整的面试文档。它的便捷之处在于,可以通过检索的方式,找到你想要的面试题,目前已经更新180期,总计超过15W字!

    【想领取面试文档的小伙伴可以点击文章底部名片无套路免费赠送给大家!】

    需要高手面试文档面试文档的小伙伴可以扫描下方二维码
    ↓↓↓↓↓↓↓↓↓↓↓↓↓

  • 相关阅读:
    Mybatis完整版详解
    在 Apache Tomcat 中配置双向 SSL
    计算机视觉 01(介绍)
    关于开展2023年度光明科学城出站博士后生活资助申报工作的通知
    全网最透彻的Netty原理讲解 一
    编程小白如何学习RPA,0基础学习RPA攻略!
    Java项目:文具学习用品商城系统(java+SSM+JSP+jQuery+Mysql)
    CC2530中文数据手册
    故障分析 | Greenplum 集群 standby 故障处理
    【科普向】Jmeter 如何测试接口保姆式教程
  • 原文地址:https://blog.csdn.net/q331464542/article/details/126572175