類的加載過程,Person person = new Person();為例進(jìn)行說明。
1).因為 new 用到了 Person.class,所以會先找到 Person.class 文件,并加載到內(nèi) 存中; 2).執(zhí)行該類中的 static 代碼塊,如果有的話,給 Person.class 類進(jìn)行初始化;
3).在堆內(nèi)存中開辟空間分配內(nèi)存地址;
4).在堆內(nèi)存中建立對象的特有屬性,并進(jìn)行默認(rèn)初始化;
5).對屬性進(jìn)行顯示初始化;
6).對對象進(jìn)行構(gòu)造代碼塊初始化;
7).對對象進(jìn)行與之對應(yīng)的構(gòu)造函數(shù)進(jìn)行初始化;
8).將內(nèi)存地址付給棧內(nèi)存中的 p 變量。