• Java牛角尖问题之类的初始化顺序


    1.1、一个类中的初始化顺序

    类内容(静态变量、静态初始化块) => 实例内容(变量、初始化块、构造器)
    1.2、两个具有继承关系类的初始化顺序

    父类的(静态变量、静态初始化块)=> 子类的(静态变量、静态初始化块)=> 父类的(变量、初始化块、构造器)=> 子类的(变量、初始化块、构造器)

     1 class A {
     2     public A() {
     3         System.out.println("Constructor A.");
     4     }
     5 
     6     {
     7         System.out.println("Instance Block A.");
     8     }
     9     static {
    10         System.out.println("Static Block A.");
    11     }
    12 
    13     public static void main(String[] args) {
    14         new A();/*
    15                  * Static Block A. Instance Block A. Constructor A.
    16                  */
    17     }
    18 }
    19 
    20 class B extends A {
    21     public B() {
    22         System.out.println("Constructor B.");
    23     }
    24 
    25     {
    26         System.out.println("Instance Block B.");
    27     }
    28     static {
    29         System.out.println("Static Block B.");
    30     }
    31 
    32     public static void main(String[] args) {
    33         new A();/*
    34                  * Static Block A. Static Block B. Instance Block A. Constructor A.
    35                  */
    36         System.out.println();
    37         new B();/*
    38                  * Instance Block A. Constructor A. Instance Block B. Constructor B.
    39                  */// 静态成员和静态初始化块只会执行一次。
    40     }
    41 }
    
  • 相关阅读:
    MVC项目发布IIS CSS无法加载
    加班理由总结
    查找SQL Server 自增ID值不连续记录
    MySQL按时间查找
    近期任务
    AngularJs使用过程中,在ng-repeat中使用track by
    Java保留字和关键字
    抽象类和接口的区别
    Java标识符
    Java方法重载
  • 原文地址:https://www.cnblogs.com/AmosAlbert/p/12832323.html
Copyright © 2020-2023  润新知