コードを見てください:
パブリック クラスのテスト{ 公共 静的 ボイドメイン(文字列[]引数){ する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)