静态代码块 构造代码块 构造方法
public class psv {
public static void main(String[] args) {
Person p1 = new Person();
Person p2 = new Person();
}
}
class Person{
private String name;
private int age;
/*
构造方法随着着对象的创建而调用
*/
public Person() {
System.out.println("构造方法执行");
}
/*
构造代码块随着对象的每次创建,执行一次,且在构造方法执行之前。
区别在于无论用户调用哪一个人构造方法来创建对象,构造代码块都会执行
*/
{
System.out.println("构造代码块执行");
}
/*
静态代码块,随着类的加载(第一次使用),静态代码块执行。
因为类只加载一次所以静态代码块也只执行一次
*/
static {
System.out.println("静态代码块执行");
}
/*
顺序:静态代码块 >> 构造代码块 >> 构造方法
构造代码块 和 构造方法 都是 对象创建的时候执行,而静态代码块是在类加载的时候执行,
类加载优先于对象的创建
*/