构造代码块:给所有的对象进行统一的初始化。对象一建立就运行并且优先于构造函数。
静态代码块:随着类的加载而加载。只执行一次,用于给类进行初始化。
public class Demo { public static void main(String[] args) { System.out.println("main函数……"); System.out.println("新建对象1:"); new People("Canva"); System.out.println("新建对象2:"); new People("Chen"); } } class People{ private String name; public static String city; //静态代码块 static { System.out.println("静态代码块……"); city = "Fuzhou"; } //构造代码块 { System.out.println("构造代码块……"); name = "unknow"; } //构造函数 public People(String name) { System.out.println("构造函数……"); this.name = name; } }运行结果如下: main函数…… 新建对象1: 静态代码块…… 构造代码块…… 构造函数…… 新建对象2: 构造代码块…… 构造函数……
请读者思考如下问题,欢迎在评论中互动: 主函数、构造函数、静态代码块和构造代码块执行的先后顺序是怎样的?