類初始化過(guò)程
在我們的class字節(jié)碼文件中,可以看到類初始化執(zhí)行的是< clinit >方法及class init方法,該方法的主要內(nèi)容如下:
- 1.類的靜態(tài)成員
- 2.類的靜態(tài)代碼塊
執(zhí)行順序和聲明順序相同,并且< clinit >方法只會(huì)在類加載時(shí)執(zhí)行一次。
對(duì)象實(shí)例化過(guò)程
對(duì)象實(shí)例化過(guò)程執(zhí)行的是< init >方法,該方法的主要組成如下
- 1.父類的實(shí)例化即調(diào)用父類的
<init>方法 - 2.普通成員或普通代碼塊 按順序執(zhí)行
- 3.構(gòu)造方法
注意點(diǎn):
1.類加載只會(huì)執(zhí)行一次,子類加載前會(huì)先加載父類
2.main方法所在的類會(huì)被優(yōu)先加載
3.創(chuàng)建一次對(duì)象就會(huì)執(zhí)行一次對(duì)象實(shí)例化即執(zhí)行一次< init >方法