下面寫一個寫一個簡單的類演示這個例子
public Test(){
i = 2;
}
static{
}
}
以前一直使用static{}代碼快,原來可以直接寫{}代碼塊
通過對java字節(jié)碼分析,發(fā)現(xiàn)代碼的執(zhí)行順序如下:
1 首先是執(zhí)行對象的構(gòu)造器方法,創(chuàng)建一個空的對象,然后對對象的字段i賦予默認(rèn)值。也就是先執(zhí)行 i = 0 (這一部應(yīng)該是原子性的)
2 然后依次對字段進行賦值,在我們這個例子里面,只有一個字段i,所以執(zhí)行 i = 1,這個是字段初始化過程
4 字段初始化完成之后再 執(zhí)行類的{}語句塊,如果有多個{}語句塊,則按照代碼順序依次執(zhí)行
3 {}語句執(zhí)行完成之后,則執(zhí)行構(gòu)造器方法i = 2
|
新聞熱點
疑難解答
圖片精選