作为Java初学者,我也在学到初始化块(特别是静态初始化块)时,对类的初始化不明白,因为Java中静态初始化块(包括类成员属性)在类初始化阶段执行。这里面主要有两个疑问:一是java中什么时候进行类的初始化?二是类的初始化完成以后,可以进行哪些操作?
经过各种google后,我得到的结论是:java中在第一次使用类(主要是:调用类属性、方法;创建对象实例;为类赋null值)的时候,进行类的初始化(这里涉及到类的生命周期:类装载----验证----准备---解析----初始化(---对象实例化---垃圾收集----对象终结)---类卸载)。在类初始化完成之后,可以进行调用类属性、方法;创建对象实例等操作(这里调用类属性、方法时,既可以用类名.属性or方法进行,也可以用声明的类变量名如 类名 类变量名 = null(或者new 对象),再类变量名.属性or方法进行,就算赋值为null,也可以调用! )。
应该表达清楚了吧? ^ - ^