• java类执行顺序


    参考:https://www.cnblogs.com/timetellu/p/11619158.html

    一、类的执行顺序

     1、静态变量和静态块赋值(按照声明顺序)

     2、构造代码块(构造代码块在创建对象时被调用,每次创建对象都会调用一次,但是优先于构造函数执行。)

     3、构造函数

    public class Constructor {
        static Constructor dd = new Constructor("静态变量");
    
        static {
            System.out.println("静态代码块");
        }
    
        {
            System.out.println("构造代码块");
        }
    
        public Constructor(){
            System.out.println("无参构造函数");
        }
    
        public Constructor(String str){
            System.out.println(str);
        }
    
        public static void main(String[] args) {
            new Constructor();
            System.out.println();
        }
    }

    结果:

     二、父类、子类的加载顺序

      1、父类的静态变量和静态块赋值(按照声明顺序)
      2、自身的静态变量和静态块赋值(按照声明顺序)
      3、父类的成员变量和块赋值(按照声明顺序)
      4、自身成员变量和块赋值(按照声明顺序)

    public class Constructor {
        static String ss="父类的静态变量";
        static {
            System.out.println(ss);
            System.out.println("父类的静态代码块");
        }
        {
            System.out.println("父类的构造代码块");
        }
        public Constructor(){
            System.out.println("父类的无参构造函数");
        }
    }
    
    class ConstructorSon extends Constructor{
        static String dd = "子类的静态变量";
        static {
            System.out.println(dd);
            System.out.println("子类的静态代码块");
        }
        {
            System.out.println("子类的构造代码块");
        }
        public ConstructorSon(){
            System.out.println("子类的无参构造函数");
        }
    
        public static void main(String[] args) {
            new ConstructorSon();
        }
    }

    结果:

  • 相关阅读:
    洛谷 P2486 [SDOI2011]染色 树链剖分
    js 随机打乱数组
    js 中concat()和slice()方法介绍
    encodeURIComponent() 函数的使用
    mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法
    Java多态的理解
    JQuery UI完成自动匹配的的下拉列表步骤
    marquee 标签的使用介绍
    orcale数据恢复
    sql中replace的用法
  • 原文地址:https://www.cnblogs.com/JoeyWong/p/12456030.html
Copyright © 2020-2023  润新知