zoukankan      html  css  js  c++  java
  • 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();
        }
    }

    结果:

  • 相关阅读:
    计算一个未排序数组中排序后相邻元素的最大差值
    13 类对象的声明中加小括号{}和不加小括号{}的区别
    12 表中删除重复项
    11 常量区的内容不能被修改
    10 无向图的边
    顺时针旋转矩阵
    字符串的旋转
    动态规划算法
    贪心算法应用-最小生成树
    贪心算法应用-单元最短路径
  • 原文地址:https://www.cnblogs.com/JoeyWong/p/12456030.html
Copyright © 2011-2022 走看看