zoukankan      html  css  js  c++  java
  • 静态代码块、构造代码块和构造函数的执行顺序

    本文前面稍微介绍了一下构造代码块和静态代码块的注意点,如果急需了解执行这三者执行顺序的话可以直接看向最后。

    一 .构造代码块

    {
        //这个就是构造代码块
    }

    关于构造代码块,以下几点需要注意:

      1.构造代码块是用来给对象进行初始化的。

      2.对象一创建就运行构造代码块,并且优先于构造函数。

      3.构造代码块和构造函数的区别:

        构造代码块是给对象进行统一初始化的,而构造函数是给对应的对象初始化,因此构造函数可以有多个,运行哪个构造函数就创建出什么样的对象,但无论创建什么样的对象,都会执行相同的构造代码块。即构造代码块中定义的是不同对象共性的初始化内容。

    二.静态代码块

    static{
        //这就是静态代码块
    }

    关于静态代码块,以下几点需要注意:

      1.静态代码块是随着类的加载而执行的,并且只执行一次,且优先于主函数。

      2.静态代码块是给类初始化的,且一个类中可以有多个静态代码块

    三.执行顺序

      1.对于只有一个类的情况:

        静态代码块>构造代码块>构造函数

      2.对于存在继承的情况:

        1).执行父类的静态代码块

        2).执行子类的静态代码块

        3).执行父类的构造代码块,然后执行构造函数

        4).执行子类的构造代码块,然后执行构造函数

        (在创建子类对象的时候,会调用super方法,所以是先初始化父类,那就得先执行构造代码块,然后执行构造方法)

  • 相关阅读:
    linux每天一小步---grep命令详解
    linux每天一小步---xargs命令详解
    linux每天一小步---find命令详解
    linux每天一小步---tail命令详解
    linux每天一小步---head命令详解
    linux每天一小步---alias命令详解
    linux每天一小步---cat命令详解
    linux每天一小步---mv命令详解
    第十四周总结
    第十三周总结
  • 原文地址:https://www.cnblogs.com/wsxdev/p/11520191.html
Copyright © 2011-2022 走看看