假設有一個Dog類
1、當首次創建Dog的對象時(構造器可以看成靜態方法),或者Dog類的靜態方法/靜態域首次被訪問時,java解釋器必須查找類路徑,以定位Dog.class文件
2、然后載入Dog.class,有關靜態初始化的所有動作都會執行。因此,靜態初始化的所有動作都會執行。因此,靜態初始化只在Class對象首次加載的時候進行一次。
3、當用new Dog()創建對象的時候,首先將在堆上為Dog類分配足夠的存儲空間。
4、這塊存儲空間會被清零,這就看上去地將Dog對象中所有基本類型數據都設置成了默認值,而引用則被設置成了null。
5、執行所有出現于字段定義處的初始化動作。
6、執行構造器。