我了解到,在 Java 中,静态块在类初始化时执行,实例块在类的每个实例构造之前执行。我总是看到
我了解到,在 Java 中,静态块在类初始化时执行,而实例块在类的每个实例构造之前执行。我总是看到静态块在实例块之前执行。为什么情况相反呢 enums
?
有人可以向我解释一下示例代码的输出吗:
enum CoffeeSize {
BIG(8), LARGE(10),HUGE(12),OVERWHELMING();
private int ounces ;
static {
System.out.println("static block ");
}
{
System.out.println("instance block");
}
private CoffeeSize(int ounces){
this.ounces = ounces;
System.out.println(ounces);
}
private CoffeeSize(){
this.ounces = 20;
System.out.println(ounces);
}
public int getOunces() {
return ounces;
}
}
输出:
实例块
8
实例块
10
实例块
12
实例块
20
静态块