静态代码块是给类进行初始化的,随着类的加载而执行,并且只执行一次
格式:static{}
构造代码块是给对象进行初始化的,随着类的加载而加载,随着对象的创建而执行,每新建一个对象,就执行一次。
格式:{}
代码执行顺序:1个静态代码块+n个(构造代码块,构造函数)
//n表示创建的对象数
实例:
package com.initialization;
public class CodeOrder {
static{
System.out.println("这是静态代码块");
}
{
System.out.println("构造代码块");
}
CodeOrder(){
System.out.println("这是无参构造函数");
}
CodeOrder(int n){
System.out.println("这是有参构造函数");
}
public static void main(String[] args) {
CodeOrder c1=new CodeOrder();
CodeOrder c2=new CodeOrder(2);
}
}
运行结果: