2010-12-07 14 views
1

スタティックイニシャライザからオブジェクトリファレンスを初期化すると、安全な発行が保証されますか?静的初期化子を使用してスタティックイニシャライザと安全な発行

+3

クラスローディングは暗黙的に同期されます。 –

+0

実際には同期されたクラスの初期化です。それはクラスローディングと同時に "同時に"起こるか、遅延して発生する可能性があります。 –

答えて

3

は、多くの場合、静的に構築することができるオブジェクトを公開するための最も簡単で安全な方法です:

public static Holder holder = new Holder(42); 

静的初期化子は、クラスの初期化時にJVMによって実行されています。 JVMの内部同期のために、このメカニズムは、この方法で初期化されたオブジェクトを安全に公開することが保証されます[JLS 12.4.2]。

関連する問題