1. 程式人生 > >java中init方法與clinit方法?

java中init方法與clinit方法?

clinit:在Java編譯之後會在位元組碼檔案中生成<clinit>方法,成為類構造器,包括靜態變數初始化和靜態塊的執行。收斂到clinit,收斂順序為(父類的先執行):

1.父類靜態變數初始化     2.父類靜態語句塊   3.子類靜態變數初始化   4.子類靜態語句塊

若父類為介面,則不會呼叫父類的clinit方法,因此一個類可以沒有clinit方法

init:在Java編譯之後會在位元組碼檔案中生成<init>方法,成為例項構造器。該例項構造器會將語句塊,變數初始化,呼叫父類的構造器等操作收斂到init方法,收斂順序:

1.父類變數初始化     2.父類語句塊  3.父類建構函式  4.子類變數初始化   5.子類語句塊 6.子類建構函式 

clinit在類載入過程中執行,init在例項化過程中執行,clin