【发布时间】:2014-11-15 19:26:12
【问题描述】:
我正在阅读一本关于 Java 的书。它给出了一个这样的例子:
class UseStatic {
static int a = 3;
static int b;
// ... some more lines
static {
b = 4 * a;
}
}
然后它解释了这一点:
一旦
UseStatic类被加载,所有static语句运行。首先将a设置为3,然后是静态块 执行,...,然后将b初始化为a*4或 12。
我想知道这些行的执行顺序到底发生了什么。它如何首先从static int a = 3 的顶部开始,然后才跳过static int b 到static {..},然后才跳回静态int b?它是如何知道这种依赖关系的?
【问题讨论】: