是什么让这行代码执行?

时间:2015-04-08 20:19:30

标签: java main static-methods

是什么让这行代码执行?

代码输出为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);
}
}

1 个答案:

答案 0 :(得分:2)

在加载类时(即在初始化静态变量之后直接执行)执行静态块。因此,cakes += UNIT;之前会执行main