天天看點

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(){