对象初始化方法执行顺序

2020-05-27  本文已影响0人  lsh的学习笔记

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

执行顺序优先级:

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

静态代码块

作用

初始化类

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

和构造代码块的区别

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

构造代码块

作用

给对象进行初始化。

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

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

与构造器的区别

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

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

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

上一篇下一篇

猜你喜欢

热点阅读