、java类中的字段,第一步是自动初始化,比如定义了
Java代码
- private int i;
由于没有给其赋值,i会被自动赋值为0。这个步骤是仅限于类中的字段的,如果方法中的临时变量,不会有这个动作。而且如果在方法中使用未经赋值的变量,编译会不通过
2、第二步是指定初始化
- private int i = 3;
如果有了显式的赋初值,那么第一步的自动初始化就不会发生了。但是该步骤和自动初始化,必定发生其一。即使在构造方法里给i赋值为4,还是首先会调用指定初始化,先赋值成3再赋值成4
3、第三步是初始化语句块初始化
- {
- i = 4;
- }
这个动作发生在自动初始化或者指定初始化之后,发生在构造方法初始化之前。如果没有初始化语句块,那么这个步骤就不会发生
4、第四步才是构造方法中的初始化
- public className(){