我有,我想初始化一些靜態的,「常數」的情況(即初始化之後沒有修改過)的數據結構。我在「靜態{}」代碼塊中執行此操作。它保證這個代碼塊不會被兩次輸入嗎?在某些特殊情況下我需要同步嗎?靜態類初始值設定項 - 是否有需要同步的情況?
更新:答案就在Are Java static initializers thread safe?
部分給出剩下的問題:如何才能靜態初始化被執行多次?這是否重要?我猜它對不同的靜態「實例」運行不止一次,即。在不同的webapp上下文中,並附加到不同的類加載器上,這樣它們就不會彼此「看到」。正確?
每個靜態初始化每個類裝載器初始化類運行一次。每個初始化操作都在靜態字段的不同副本上進行。 – 2013-03-17 17:11:13