一尘不染

Java 静态类初始化何时发生?

java

静态字段何时初始化?如果我从不实例化一个类,而是访问一个静态字段,那么用于实例化私有静态字段的所有静态块和私有静态方法是否在那个瞬间被调用(按顺序)?

如果我调用静态方法怎么办?它也运行所有静态块吗?之前的方法?


阅读 547

收藏
2020-02-28

共1个答案

一尘不染

类的静态初始化通常在以下事件之一首次发生之前立即发生:

  • 创建该类的实例,
  • 该类的静态方法被调用,
  • 分配了该类的静态字段,
  • 使用了非恒定静态字段,或者
  • 对于顶级类,将执行词法嵌套在该类中的assert语句1。
2020-02-28