摘录自《thinking in Java》
以Dog对象为例。
1、在使用new创建Dog对象时,或者调用Dog类的静态方法(类方法)/静态成员(类成员)时,Java编译器会去查找Dog.class文件。
2、接着载入Dog.class文件,在这里静态初始化的动作会被执行,静态初始化在类对象首次加载时进行,且只做一次。
3、然后new Dog对象时,在堆中为Dog对象分配足够的存储空间。
4、这块存储空间被初始化,Dog类的成员被设置成默认值。
5、初始化块初始化。
6、构造函数初始化。