天天看點

Java類中靜态方法和靜态變量,靜态代碼塊,構造方法執行順序

作者:程式猿Clover

一,Java類執行順序

子類:ATest

Java類中靜态方法和靜态變量,靜态代碼塊,構造方法執行順序

父類:AParentTest

Java類中靜态方法和靜态變量,靜态代碼塊,構造方法執行順序

直接調用靜态方法

第一種:當直接調用(沒有new對象)靜态方法時候:父類靜态變量(按照順序)執行----->子類靜态變量(按照順序)----->父類靜态代碼塊------>子類靜态代碼塊--------->執行方法執行。

Java類中靜态方法和靜态變量,靜态代碼塊,構造方法執行順序

new對象建立

第二種建立對象:執行父類靜态代碼---->執行子類的靜态代碼---->執行父類構造方法----->執行子類的構造方法(注:@PostConstruct修飾的方法是在構造方法之後執行的)

Java類中靜态方法和靜态變量,靜态代碼塊,構造方法執行順序

注:靜态變量和靜态代碼塊都是按照代碼書寫順序執行的,對于靜态代碼塊隻要是操作(調用靜态方法或者建立一個類等)這個類就會執行(包括靜态變量)

二,說明

對于java類的執行順序,我們可以通過測試了解現象,通過現象意會結果,這還可以幫助我們更好的了解一些執行順序,不至于看到一些源碼,不懂裡面執行的邏輯