Java程序初始化遵循原則:函數
1.靜態對象(變量)優先於非靜態對象(變量)初始化。其中,靜態對象(變量)只初始化一次,而非靜態對象(變量)可能會初始化屢次。對象
2.父類優先於子類進行初始化。變量
3.按照成員變量的定義順序進行初始化。即便變量定義散佈於方法定義之間,它們仍舊會在任何方法(包括構造器)被調用以前獲得初始化。即:先變量後方法。 構造函數
具體執行順序以下:程序
父類靜態變量>父類靜態代碼塊>子類靜態變量>子類靜態代碼塊>父類非靜態變量>父類非靜態代碼塊>父類構造函數>子類非靜態變量>子類非靜態代碼塊>子類構造函數。方法