1.初始化块:对JAVA对象进行初始化的代码块;
2.静态初始化块:
1️⃣Format:
static{
Kobe=24;
}
2️⃣静态代码块可以对类的属性进行初始化操作;
3️⃣只可以对静态属性进行初始化;
4️⃣静态初始化块仅执行一次且先于非静态初始化块执行;
3.非静态初始化块:
1️⃣Format:
{
Kobe=24;
}
2️⃣非代码块可以对类的属性进行初始化操作;
3️⃣可以调用静态属性和方法;
4️⃣每次创建对象时都会执行一次且先于构造器执行;
4.e.g.
class Belluci {
public static int allen;
public static int iverson;
{
iverson=3;
System.out.println("I am what I am");
}
static {
allen = 100;
System.out.println("Hail Hydra!");
}
}
public class Monica {
public static void main(String[] args) {
System.out.println("allen = "+ Belluci.allen);
Belluci b=new Belluci();
Belluci e=new Belluci();
}
}
Hail Hydra!
allen = 100
I am what I am
I am what I am
如上,可知:
1️⃣每次创建对象,静态代码块都会执行一次;
2️⃣非静态代码块可以调用静态属性;;
3️⃣静态代码块随着类加载而加载,而且只被执行一次,
4️⃣静态代码块的执行先于非静态代码块的执行;