构造代码块 package crud.entity; import java.util.Date; public class User { private int uid; private String naem; private Date date; //构造函数 public User(){ System.out.println("构造函数..."); } //构造代码块 { System.out.println("构造代码块..."); } //静态代码块 static{ System.out.println("静态代码块..."); } ...... public static void main(String[] args){ User u = new User(); } } 构造代码块的作用: 给对象进行初始化,对象一建立就运行,而且优先于构造函数执行。 构造函数的作用: 给对象进行初始化,对象一建立就运行。 构造函数和构造代码块的区别: 构造代码块是给所有对象进行统一初始化;而构造函数是给对应的对象初始化。构造代码块中定义的是不同对象共性的初始化内容。 静态代码块的作用: 随着类的加载而执行,只执行一次,并优先于主函数,用于给类进行初始化。 下面为 new 一个对象的执行步骤 User u = new User(); 1、加载User.class 2、执行该类的static代码块,如果有的话,给User.calss初始化 3、在堆内存中开辟空间,分配内存地址 4、在堆内存中建立对象的特有属性,并进行默认初始化 5、对属性进行显示初始化 6、对对象进行构造代码块初始化 7、对对象进行对应的构造函数初始化 8、将内存地址赋给栈内存中的u变量