你們都說 SimpleDateFormat 不是線程安全的,到底哪裏不安全呢?java
來看 SimpleDateFormat 類的源碼註釋:面試
說的很清楚,SimpleDateFormat 不是線程安全的,多線程下須要爲每一個線程建立不一樣的實例。spring
不安全的緣由是由於使用了 Calendar 這個全局變量:小程序
在日期格式化的時候:安全
這個 time 就會出現多線程併發設置安全問題,好比 A 線程在執行設置的時候,恰好被 B 線程搶先設置了,這樣時間不就錯亂了。多線程
其實在阿里巴巴 Java 開發手冊中也規範的很清楚:併發
如何獲取這份完整手冊,能夠關注公衆號:Java核心技術,在後臺回覆:手冊。intellij-idea
解決方法:ide
其實在阿里巴巴 Java 開發手冊中也給出了答案,如今棧長再總結下:工具
1)儘可能使用局部變量;
2)若是要使用全局變量,則須要加鎖格式化操做;
3)使用 ThreadLocal 進行線程隔離;
這個面試題摘自《Java技術棧》小程序中的面試題,以爲不錯,特別拿出來分享給你們,小程序中我還整理了至關多的面試題及精選答案,一塊兒來在線刷題吧。
版權申明:本文系公衆號 "Java技術棧" 原創,原創實屬不易,轉載、引用本文內容請註明出處,禁止抄襲、洗稿,請自重,尊重他人勞動成果和知識產權。
近期熱文推薦:
1.600+ 道 Java面試題及答案整理(2021最新版)
2.終於靠開源項目弄到 IntelliJ IDEA 激活碼了,真香!
3.阿里 Mock 工具正式開源,幹掉市面上全部 Mock 工具!
4.Spring Cloud 2020.0.0 正式發佈,全新顛覆性版本!
以爲不錯,別忘了隨手點贊+轉發哦!