靜態(tài)代碼塊:只要一用到某個類,那么這個類的靜態(tài)代碼塊就先執(zhí)行,比如:
惠來ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
public class Dog(){
int i = 0;
static {
i = 1;
}
public Dog(){
i = 2;
}
}當你new 一個Dog()對象時,首先i=
1 會執(zhí)行,然后才執(zhí)行
public Dog(){}這個方法。
pulic
Dog() 是與類同名、沒有返回值的方法,也就是構(gòu)造方法。
構(gòu)造方法的作用是用來初始化一個對象的。比如你可以在里面寫
i
=
2;
那么當你 Dog
d
=
new
Dog()執(zhí)行這段代碼的時候,是這樣的:
首先
i
=
;
然后執(zhí)行static 靜態(tài)代碼塊,此時i=
1;
最后執(zhí)行public
Dog();
i
=
2;
先說執(zhí)行順序:我們在new一個對象時,如果類還沒加載,就需要先將類加載到內(nèi)存,此時就會執(zhí)行靜態(tài)代碼塊,在創(chuàng)建對象時,是先執(zhí)行代碼塊,然后執(zhí)行構(gòu)造器。所以靜態(tài)代碼塊、代碼塊、構(gòu)造器的執(zhí)行順序是:靜態(tài)代碼塊→代碼塊→構(gòu)造器。
再說作用:靜態(tài)代碼塊是用于初始化類的(在加載類時執(zhí)行,只執(zhí)行一次),代碼塊是用于初始化對象的(在創(chuàng)建對象時執(zhí)行,每次創(chuàng)建對象時都執(zhí)行),構(gòu)造器是用于創(chuàng)建對象的。
靜態(tài)代碼塊:有些代碼必須在項目啟動的時候就執(zhí)行,這種代碼是主動執(zhí)行的(當類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化)
靜態(tài)方法:需要在項目啟動的時候就初始化,在不創(chuàng)建對象的情況下,這種代碼是被動執(zhí)行的(靜態(tài)方法在類加載的時候就已經(jīng)加載
可以用類名直接調(diào)用)。
兩者的區(qū)別是:靜態(tài)代碼塊是自動執(zhí)行的,
靜態(tài)方法是被調(diào)用的時候才執(zhí)行的.