Java011Java程序初始化順序
1.父類靜態變量
2.父類靜態代碼塊
3.子類靜態變量
4.子類靜態代碼塊
5.父類非靜態變量
6.父類非靜態代碼塊
7.父類構造器
8.子類非靜態變量
9.子類非靜態代碼塊
10.子類構造器
Java程序初始化一般遵循3+1個原則:
1.靜態對象(變量)先於非靜態對象(變量)初始化,其中靜態對象(變量)只初始化一次,而非靜態對象(變量)可能會初始化很多次
2.父類優先於子類進行初始化
3.按照成員變量的定義順序進行初始化。即使變量定義散佈於方法之中,它們依然在任何方法(包括構造器)被調用前先初始化。
4.靜態初始化只有在必要時刻纔會進行。只有第一個對象創建(或第一次訪問靜態數據)的時候,它們纔會被初始化。此後,靜態對象不會再次被初始化。