• 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();
        }
    }

    结果:

  • 相关阅读:
    JAVA队列的使用
    四种线程池的使用
    JAVA中只有值传递
    为什么说Java语言是平台无关的?
    Jsoup爬虫解析
    java爬虫
    oracle触发器
    easyUi引入方法
    highchart
    July 20th 2017 Week 29th Thursday
  • 原文地址:https://www.cnblogs.com/JoeyWong/p/12456030.html
Copyright © 2020-2023  润新知