靜態(tài)代碼塊:有些代碼必須在項目啟動的時候就執(zhí)行,這種代碼是主動執(zhí)行的(當(dāng)類被載入時,靜態(tài)代碼塊被執(zhí)行,且只被執(zhí)行一次,靜態(tài)塊常用來執(zhí)行類屬性的初始化)
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),宜都企業(yè)網(wǎng)站建設(shè),宜都品牌網(wǎng)站建設(shè),網(wǎng)站定制,宜都網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,宜都網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
靜態(tài)方法:需要在項目啟動的時候就初始化,在不創(chuàng)建對象的情況下,這種代碼是被動執(zhí)行的(靜態(tài)方法在類加載的時候就已經(jīng)加載
可以用類名直接調(diào)用)。
兩者的區(qū)別是:靜態(tài)代碼塊是自動執(zhí)行的,
靜態(tài)方法是被調(diào)用的時候才執(zhí)行的.
static{...}是靜態(tài)塊,而只有{...}的是叫做構(gòu)造塊。
靜態(tài)塊在一個程序里面只執(zhí)行一次;
而構(gòu)造塊是,只要建立一個對象,構(gòu)造代碼塊都會執(zhí)行一次。
靜態(tài)塊優(yōu)先于主方法的執(zhí)行,靜態(tài)塊優(yōu)先于構(gòu)造快,然后是構(gòu)造方法的執(zhí)行,而且只執(zhí)行一次!
所以輸出結(jié)果是:
static
block
instance1
block
instance2
先說執(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)建對象的。