zoukankan      html  css  js  c++  java
  • 类初始化顺序执行结果

     以下程序运行结果是:

    class Y {
        public Y() {
            System.out.println("Y的构造方法");
        }
    
        X x = new X();
        {
            System.out.println("Y的构造代码块");
        }
    
        static {
            System.out.println("Y类的静态代码块初始化");
        }
        static int i = 11;
        static {
            i = 22;
            System.out.println("Y类的静态代码块初始化,且静态变量i的值是:" + i);
        }
    }
    
    class X {
        public X() {
            System.out.println("X的构造方法");
        }
    
        {
            System.out.println("X的构造代码块");
        }
        static {
            System.out.println("X类的静态代码块初始化");
        }
        static int i = 1;
        static {
            i = 2;
            System.out.println("X类的静态代码块初始化,且静态变量i的值是:" + i);
        }
    }
    
    public class Z extends Y {
    
        public static void main(String[] args) {
            new Z();
        }
    
        public Z() {
            System.out.println("Z的构造方法");
        }
    
        X x = new X();
        {
            System.out.println("Z的构造代码块");
        }
        static {
            System.out.println("Z类的静态代码块初始化");
        }
        static int i = 111;
        static {
            i = 222;
            System.out.println("Z类的静态代码块初始化,且静态变量i的值是:" + i);
        }
    }

    输出结果:

    Y类的静态代码块初始化
    Y类的静态代码块初始化,且静态变量i的值是:22
    Z类的静态代码块初始化
    Z类的静态代码块初始化,且静态变量i的值是:222
    X类的静态代码块初始化
    X类的静态代码块初始化,且静态变量i的值是:2
    X的构造代码块
    X的构造方法
    Y的构造代码块
    Y的构造方法
    X的构造代码块
    X的构造方法
    Z的构造代码块
    Z的构造方法

    初始化过程: 
    1. 初始化父类中的静态成员变量和静态代码块(静态成员变量和静态代码块两者按在类中声明的先后顺序顺序执行) ; 
    2. 初始化子类中的静态成员变量和静态代码块(静态成员变量和静态代码块两者按在类中声明的先后顺序顺序执行) ; 
    3.初始化父类的普通成员变量和代码块,再执行父类的构造方法(其中被执行的父类构造方法和子类构造方法参数数量类型一致,普通成员变量和代码块两者按在类中声明的先后顺序顺序执行),;
    4.初始化子类的普通成员变量和代码块,再执行子类的构造方法(普通成员变量和代码块两者按在类中声明的先后顺序顺序执行); 
     
    另一个静态类初始化顺序题:http://www.cnblogs.com/SaraMoring/p/5846610.html
  • 相关阅读:
    ReLU激活函数:简单之美
    逻辑回归(Logistic Regression)推导
    机器学习之视频推荐
    TensorFlow OOM when allocating tensor with shape[5000,384707]
    工银亚洲账户激活
    微信小程序之多行文本省略号
    关于微信小程序:scroll-view,backgroundTextStyle
    css之box-sizing属性(css3中的新属性)
    css之max-width属性
    css中的display属性之li元素
  • 原文地址:https://www.cnblogs.com/SaraMoring/p/5878638.html
Copyright © 2011-2022 走看看