クラスの初期化処理は Klass::initialize() に実装されている.
HotSpot 内では, クラスをロードした後でも, 実際に使用されるまでは未初期化のままとしている. このため, HotSpot 内でクラスの情報にアクセスする際(フィールドアクセス, メソッド呼び出し, インスタンス生成, etc)には, 初期化されていない可能性を考慮し, 念のために Klass::initialize() を呼び出してから処理を行う (See: here for details).
Klass::initialize() 内では, 対象のクラスがまだ初期化されていなければ, 初期化処理を行う (See: here for details).
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.