美文网首页
对象初始化方法执行顺序

对象初始化方法执行顺序

作者: lsh的学习笔记 | 来源:发表于2020-05-27 00:00 被阅读0次

    静态代码块:用staitc声明,jvm加载类时执行,仅执行一次
    构造代码块:类中直接用{}定义,每一次创建对象时执行。

    执行顺序优先级:

    1. 静态块,
    2. main(),
    3. 构造块,
    4. 构造方法。

    静态代码块

    作用

    初始化类

    1. 随着类的加载而执行,只执行一次,并优先于main方法
    2. 一个类中可以有多个静态代码块,执行顺序按定义的先后顺序。

    和构造代码块的区别

    1. 静态代码块是初始化类的,而构造代码块是初始化对象的。
    2. 静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。

    构造代码块

    作用

    给对象进行初始化。

    对象一建立就运行构造代码块了,而且优先于构造函数执行。

    这里要强调一下,有对象建立,才会运行构造代码块,类不能调用构造代码块的,而且构造代码块与构造函数的执行顺序是前者先于后者执行。

    与构造器的区别

    构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。

    因为构造器可能有多个,调用各个构造器初始化的对象是不一样的,但无论创建哪个对象,都会先执行相同的构造代码块。

    也就是说,构造代码块中定义的是不同对象共性初始化内容

    相关文章

      网友评论

          本文标题:对象初始化方法执行顺序

          本文链接:https://www.haomeiwen.com/subject/zgxiahtx.html