- 静态代码块:随着类的加载而执行,而且只执行一次。用于给类进行初始化。
- 构造代码块:可以给所有对象进行初始化。每次调用构造都执行,并且在构造方法前执行。
- 构造函数:是给对应的对象进行针对性的初始化。
- 局部代码块:限定局部变量的生命周期。及早释放,提高内存利用率。
各个代码块之间的执行顺序:
静态代码块——>main方法——>构造代码块——>构造函数
class MM{
static {
System.out.println("MM 静态代码块");
}
{
System.out.println("MM 构造代码块");
}
public MM() {
System.out.println("MM 构造函数");
}
}
public class Demo1 {
static {
System.out.println("Demo 静态代码块");
}
public static void main(String[] args) {
System.out.println("Demo main方法");
MM m1=new MM();
MM m2=new MM();
}
}
执行结果:
Demo 静态代码块
Demo main方法
MM 静态代码块
MM 构造代码块
MM 构造方法
MM 构造代码块
MM 构造方法