static{a =2;}//静态块中初始化staticint a =1;//成员域中初始化staticint b =3;static{b =4;}{c =5;}//可以放在声明的上面int c =3;@Testpublicvoidtest_order(){System.out.println(a);System.out.println(b);System.out.println(c);}
结果输出
1
4
3
结果分析
块中的初始化与成员域中的初始化是平级的,所以会按照从上到下初始化,最后一次初始化为最终的值。
场景3:静态变量的调用
用例代码
@Testpublicvoidtest_static_var(){System.out.println(InitB.c);}publicclassInitA{publicstaticString c ="C";static{System.out.println("A");}}publicclassInitBextendsInitA{static{System.out.println("B");}}