[关闭]
@RitcheeQinG 2020-05-06T08:06:35.000000Z 字数 765 阅读 262

测试一下静态内部类static修饰内容的初始化时机

Java


测试类:

  1. public class InitializeClass {
  2. static {
  3. System.out.println("Outer Class static()");
  4. }
  5. public InitializeClass() {
  6. System.out.println("Outer Class instance()");
  7. InnerClassA classA = new InnerClassA();
  8. }
  9. public static class InnerClassA {
  10. private static int A = getA();
  11. private static int getA() {
  12. System.out.println("Inner Class Variable A");
  13. return 1;
  14. }
  15. private static int getB() {
  16. System.out.println("Inner Class Variable B");
  17. return 1;
  18. }
  19. static {
  20. System.out.println("Inner Class static()");
  21. }
  22. private static int B = getB();
  23. public InnerClassA() {
  24. System.out.println("Inner Class instance()");
  25. }
  26. }
  27. public static void main(String[] args) {
  28. new InitializeClass();
  29. }
  30. }

输出:

  1. Outer Class static()
  2. Outer Class instance()
  3. Inner Class Variable A
  4. Inner Class static()
  5. Inner Class Variable B
  6. Inner Class instance()

可见静态内部类static{}的初始化时机在实例化流程开始之后
静态变量一样

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注