代码块
作用:
对Java类或对象进行初始化
静态代码块:
通常用于初始化静态属性
1、可以有输出语句
2、可以对类的属性、类的声明进行初始化操作
3、不可以对非静态的属性进行初始化
4、多个静态代码块,由上到下依次执行
5、静态代码块的执行先于非静态代码块
6、静态代码块随类的加载而加载,且只执行一次
非静态代码块:
1、可以有输出语句
2、可以对类的属性、类的声明进行初始化操作
3、可以对非静态的属性进行初始化,也可以对静态的变量和方法进行调用
4、多个非静态代码块,由上到下依次执行
5、非静态代码块随类的创建而执行,创建一个对象就执行一次,
优先于构造器
成员变量赋值顺序
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/67a28d906f134392f37b0767216724b8.png)