哈喽,本章一起学习代码块的调用顺序!
一、区别和特征
1、静态代码块
-
static{//静态代码块 //只会在类加载时,执行一次//用于初始化环境}
-
(类什么时候会加载)
-
创建对象实例时(new)
-
创建子类对象实例,父类也会被加载
-
使用类的静态成员(静态属性、方法)
-
2、普通代码块
-
在new对象时,被调用
-
每创建一个对象, 被调用一次
二、调用顺序
-
在一个类中
- 静态(属性和方法按定义顺序)>动态(属性和方法按定义顺序)>构造器
-
有继承时
- 先执行父类静态属性和代码块
- 再执行子类静态属性和代码块
- 执行父类的普通属性和代码块
- 执行父类的构造方法(注意)
- 执行子类的普通属性和代码块
- 执行子类的构造方法