代码块
用于初始化类或者对象的信息(即初始化类或对象的成员变量)
静态代码块
1.随着类的加载而执行
2.由于类的加载只会执行一次,所以静态代码块的执行也是一次
3.可以用于初始化类的信息
4.内部可以声明变量、调用属性或方法、编写输出语句等操作。
5.静态代码的执行先于非静态
6.如果声明有多个静态代码块,则按照声明的先后顺序执行
7.静态代码块内部只能调用静态的结构(即静态的属性、方法),不能调用非静态的结构(即非静态的属性、方法)
非静态代码块
1.随着对象的创建而执行
2.创建多个对象非静态代码块执行多次
3.用于初始化对象的信息
4..内部可以声明变量、调用属性或方法、编写输出语句等操作。
5.如果声明有多个静态代码块,则按照声明的先后顺序执行
6.非静态代码块内部能调用静态的结构(即静态的属性、方法),也可以调用静态的结构(即非静态的属性、方法)【已经提前加载过】
显式赋值:适用于每个对象属性值都相同的场景
构造器中赋值:适合每个对象属性值都不同的场景