类加载中的初始化阶段
可以理解为执行类加载器()方法的过程。
在准备阶段,变量已经赋过一次系统要求的初始值,而在初始化阶段程序员通过程序定制的主观计划去初始化类变量和其他资源。
- ()方法是由编译器自动收集类中的所有类变量的赋值动作和静态语句块(static{}块) 中的语句合并产生的,编译器收集的顺序是由语句在源文件中出现的顺序所决定的。静态语句块中只能访问到定义在静态语句块之前的变量。
- ()方法与类的构造函数(或者说实例构造器()方法) 不同,它不需要显示调用父类构造器,虚拟机会保证子类()方法执行之前,父类的()方法已经执行完成。
- 由于父类的()方法执行,也就意味着父类中定义的静态语句要优先于子类的变量赋值操作。
() 与 () 两个不同的方法,没太大联系,一般是先执行()后执行(),()一般只执行一次。