靜態(tài)代碼塊是在類(lèi)加載時(shí)執(zhí)行還是初始化時(shí)執(zhí)行?
靜態(tài)代碼塊是在類(lèi)加載時(shí)執(zhí)行的。在Java中,當(dāng)一個(gè)類(lèi)被加載到內(nèi)存中時(shí),靜態(tài)代碼塊會(huì)被執(zhí)行,而不是在類(lèi)的實(shí)例被創(chuàng)建時(shí)執(zhí)行。靜態(tài)代碼塊只會(huì)執(zhí)行一次,它的主要目的是在類(lèi)加載時(shí)進(jìn)行一些初始化操作,例如初始化靜態(tài)變量或執(zhí)行一些靜態(tài)方法。
靜態(tài)代碼塊的語(yǔ)法如下:
`java
static {
// 靜態(tài)代碼塊中的初始化操作
靜態(tài)代碼塊可以用來(lái)初始化靜態(tài)變量,例如:
`java
public class MyClass {
public static int myStaticVariable;
static {
myStaticVariable = 10;
}
在上面的例子中,靜態(tài)代碼塊初始化了靜態(tài)變量myStaticVariable為10。這樣,在類(lèi)加載時(shí),靜態(tài)變量就已經(jīng)被初始化了。
需要注意的是,靜態(tài)代碼塊的執(zhí)行順序是按照它們?cè)陬?lèi)中的出現(xiàn)順序來(lái)執(zhí)行的。如果一個(gè)類(lèi)中有多個(gè)靜態(tài)代碼塊,它們會(huì)按照順序依次執(zhí)行。
靜態(tài)代碼塊是在類(lèi)加載時(shí)執(zhí)行的,它用于進(jìn)行一些類(lèi)級(jí)別的初始化操作,例如初始化靜態(tài)變量。它只會(huì)執(zhí)行一次,且按照在類(lèi)中的出現(xiàn)順序執(zhí)行。