Java中的init方法和clinit方法

01 init方法

init是對象構造器方法,在建立實例時調用。jvm

02 clinit方法

clinit是類構造器方法,也就是在jvm在進行類加載-驗證-解析-初始化中的初始化階段,jvm會調用clinit方法。函數

clinit方法是在類加載過程當中執行的,而init方法是在對象實例化執行的。因此clinit必定比init方法先執行。

因此執行順序爲:對象

  1. 父類靜態變量初始化
  2. 父類靜態語句塊
  3. 子類靜態變量初始化
  4. 子類靜態語句塊
  5. 父類變量初始化
  6. 父類語句塊
  7. 父類構造函數
  8. 子類變量初始化
  9. 子類語句塊
  10. 子類構造函數
相關文章
相關標籤/搜索