是什么让这行代码执行?
代码输出为11,但我期待 它是1
package methodcalling;
public class MethodCalling {
public static int cakes = 1;
public final static int UNIT = 10;
static{cakes += UNIT;} // what makes this line of code execute
public static void main(String[] args) {
System.out.println(cakes);
}
}
答案 0 :(得分:2)
在加载类时(即在初始化静态变量之后直接执行)执行静态块。因此,cakes += UNIT;
之前会执行main
。