内部の静的クラスのロード順序および内部クラス

 コードを見てください:

パブリック クラスのテスト{
     公共 静的 ボイドメイン(文字列[]引数){ 
        するSystem.out.println( "这是メイン方法" )。
        System.out.println( "---------------------分割线-------------------" ); 
        外側の外 = 新しい外()。
        System.out.println( "---------------------分割线-------------------" ); 
        System.out.println(Outer.Inner.a)。

    } 
} 
クラスアウター{
     パブリック 静的 int型、N = 2 静的{ 
        System.out.printlnは("これは、コードの静的ブロックである!" ); 
    } 
    静的 クラスインナー{
         パブリック 静的 int型 A = 10; //は、クラスがロードされるまで存在しない
         // のpublic static final A = 10; // あり、コンパイル時にファイナル唯一の呼び出しは、静的な内部クラスのロードされない場合は
        、静的を{ 
            System.out.printlnはは(「これは、静的な内部クラスです!」); 
        } 
    } 
}

 

結果は次のとおりです。

静的な内部クラスと通常のクラスのロード順序は同じです:クラスは積極的に呼び出されたときに、JVMがクラスを初期化するために行きます(https://www.cnblogs.com/DDiamondd/p/10963096.html

おすすめ

転載: www.cnblogs.com/DDiamondd/p/10964100.html