静态初始化块允许更复杂的初始化,例如使用条件:
static double a;static { if (SomeCondition) { a = 0; } else { a = 1; }}或者,当需要的不仅仅是构造时:使用构建器创建实例时,除了创建静态字段之外,还必须进行异常处理或其他工作。
静态初始化块也在内联静态初始化器之后运行,因此以下内容有效:
static double a;static double b = 1;static { a = b * 4; // evaluates to 4}


