Java中init方法和clinit方法

init方法:java

.Java文件在編譯後會在字節碼文件中生成init方法,該方法被稱之爲實例構造器。init方法是在對象實例化時執行的。該方法中的操做及其順序爲函數

1.父類變量初始化  2.父類語句塊  3.父類構造函數  4.子類變量初始化 5.子類語句塊  6.子類構造函數對象

clinit方法:接口

.java文件在編譯後會在字節碼文件中生成clinit方法,該方法被稱之爲類構造器。該方法中的操做及其順序爲:it

1.父類靜態變量初始化 2.父類靜態語句塊 3.子類靜態變量初始化 4.子類靜態語句塊   (若父類爲接口,則不會調用父類的clinit方法,一個類能夠沒有clinit方法)編譯

clinit必定比init先執行,由於clinit是在類加載過程當中執行的,而init是在對象實例化時執行的。整個執行順序爲:class

1.父類靜態變量初始化  2.父類靜態語句塊  3.子類靜態變量初始化  4.子類靜態語句塊   5.父類變量初始化  6.父類語句塊  7.父類構造函數  8.子類變量初始化 9.子類語句塊  10.子類構造函數變量

相關文章
相關標籤/搜索