代码块就是很简单就是 一对大括号把一部分代码块扩起来
其主要分成三个部分:静态代码块 , 构造代码块,局部代码块
1.静态代码块
格式:
static{
多行代码;
}
定义位置:定义在类中
作用:用于给类进行初始化,只执行一次。
加载顺序(从上到下):
- 先进行默认初始化
- 进行显示初始化
- 执行静态代码块
如果静态代码块在静态变量上边,先执行静态代码块
静态代码块是类加载的之后一步,也意味着静态代码块执行完毕后标志着类加载的完毕
类加载的时间:在第一次出现new 这个类对象的时候
2.构造代码块
格式:
{
多行代码;
}
定义位置:定义在类中
优先于构造方法执行,用于给所有对象进行统一初始化。
在构造方法的内部有隐式的三步:
- 执行super();(即调用父类构造方法和构造代码块)
- 显示初始化
- 执行构造代码块
注意:2步和3步与书写顺序有关
在构造方法之前执行,创建一个对象只执行一次
3局部代码块
格式:
{
多行代码;
}
定义位置:定义在局部位置上
作用:控制局部变量的使用范围
类的加载顺序(下图):
对象创建过程:
注意:显示初始化和构造代码块执行有先后顺序。