1、在栈中开辟一个空间p。
2、通过类加载器装载classs文件。
3、执行类中的静态代码块。
4、在堆内存中开辟空间,分配内存地址。
5、执行成员默认初始化。
6、执行构造代码块。
7、执行构造函数初始化、
8、把堆内存中的地址赋给应用变量。
我们可以测试看看结果
public class User implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String name;
private int age;
{
System.out.println("代码块");
}
static {
System.out.println("静态代码块");
}
public User() {
super();
System.out.println("默认构造函数");
}
public User(String id, String name, int age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
public static void main(String[] args) {
User u = new User();
User u1 = new User();
}
}
结果:
静态代码块
代码块
默认构造函数
代码块
默认构造函数