4.4.3 静态数据初始化
静态的东西属于类。
静态数据成员只在这个类的第一个对象要创建的时候初始化。
Case: StaticInitialization.java
我们总结一下对象的创建过程。考虑一个叫做Dog的类:
-
类型为Dog的一个对象首次创建时,或者Dog类的静态方法/数据首次访问时,Java解释器
必须找到Dog.class。
-
找到Dog.class后,它的所有的静态初始化模块都会运行。因此,静态初始化仅发生一次。
-
创建一个new Dog( )时,new语句首先会在堆里分配一个足够的空间。
-
这个空间将会被清除为零,因此Dog中所有的数据成员都得到了缺省值。
-
执行定义初始化。
-
执行构造函数。