千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

代碼塊,屬于類中的成員(即和屬性,方法一樣,是類的一部分)。代碼塊的形成如同方法一樣,用花括號(hào)將一些代碼包括起來。只不過相比方法來看,代碼塊只有"方法體"。與方法相比,代碼塊沒有返回值類型,沒有方法名,也沒有形參列表,是個(gè)名副其實(shí)的“三無方法”。代碼塊只有方法體,而且在調(diào)用時(shí),不需要通過創(chuàng)建對(duì)象或是像使用類方法那樣顯式的調(diào)用;而是在加載包含代碼塊的類時(shí),或者是在實(shí)例化該類對(duì)象時(shí),自動(dòng)的隱式調(diào)用。.靜態(tài)代碼塊的作用是對(duì)整個(gè)類進(jìn)行初始化工作,且隨著類的被加載而被隱式地調(diào)用。由于一個(gè)類的字節(jié)碼文件只會(huì)被加載一次,因此靜態(tài)代碼塊也最多只能被執(zhí)行一次。
而對(duì)于非靜態(tài)代碼塊來說,每創(chuàng)建一個(gè)包含非靜態(tài)代碼塊的類 (即每實(shí)例化一次該類),都會(huì)執(zhí)行一次該類中的非靜態(tài)代碼塊。注意:如果僅僅通過“類名.”的形式去調(diào)用類的靜態(tài)成員(即類變量和類方法的使用),那么非靜態(tài)代碼塊不會(huì)執(zhí)行。關(guān)于在創(chuàng)建對(duì)象時(shí),靜態(tài)成員、非靜態(tài)成員,以及構(gòu)造器在一個(gè)類中的調(diào)用順序 :
①首先執(zhí)行靜態(tài)代碼塊(因?yàn)橐虞d類)和靜態(tài)屬性的初始化;這兩者的執(zhí)行優(yōu)先級(jí)相同,同級(jí)。但如果同時(shí)定義了多個(gè)靜態(tài)代碼塊和多個(gè)靜態(tài)屬性的初始化語句,則按照定義的順序來執(zhí)行。(即誰在前頭先執(zhí)行誰)
②其次執(zhí)行非靜態(tài)代碼塊和非靜態(tài)屬性的初始化;這兩者的執(zhí)行優(yōu)先級(jí)也相同,同級(jí)。同理,若同時(shí)定義了多個(gè)非靜態(tài)代碼塊和多個(gè)非靜態(tài)屬性的初始化語句,則按照定義的先后順序來執(zhí)行。
③最后執(zhí)行構(gòu)造器初始化。