天天看点

java类的初始化过程

、java类中的字段,第一步是自动初始化,比如定义了 

Java代码  

java类的初始化过程

  1. private int i;  

由于没有给其赋值,i会被自动赋值为0。这个步骤是仅限于类中的字段的,如果方法中的临时变量,不会有这个动作。而且如果在方法中使用未经赋值的变量,编译会不通过 

2、第二步是指定初始化 

java类的初始化过程
  1. private int i = 3;  

如果有了显式的赋初值,那么第一步的自动初始化就不会发生了。但是该步骤和自动初始化,必定发生其一。即使在构造方法里给i赋值为4,还是首先会调用指定初始化,先赋值成3再赋值成4 

3、第三步是初始化语句块初始化 

java类的初始化过程
  1. {  
  2.     i = 4;  
  3. }  

这个动作发生在自动初始化或者指定初始化之后,发生在构造方法初始化之前。如果没有初始化语句块,那么这个步骤就不会发生 

4、第四步才是构造方法中的初始化 

java类的初始化过程
  1. public className(){