国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

通過java字節(jié)碼分析學習對象初始化順序

2019-11-26 15:53:02
字體:
來源:轉載
供稿:網(wǎng)友

復制代碼 代碼如下:

mockery.checking(new Expectations() {

           {
               one(new Object()).toString();
               will(returnValue(""));
           }
       });

下面寫一個寫一個簡單的類演示這個例子

復制代碼 代碼如下:

public class Test {

    int i = 1;
    {
        int j = 1;
        System.out.println(j);
    }

public Test(){
i = 2;
}
static{

}

}

以前一直使用static{}代碼快,原來可以直接寫{}代碼塊

通過對java字節(jié)碼分析,發(fā)現(xiàn)代碼的執(zhí)行順序如下:

1 首先是執(zhí)行對象的構造器方法,創(chuàng)建一個空的對象,然后對對象的字段i賦予默認值。也就是先執(zhí)行 i = 0 (這一部應該是原子性的)

2 然后依次對字段進行賦值,在我們這個例子里面,只有一個字段i,所以執(zhí)行 i = 1,這個是字段初始化過程

4 字段初始化完成之后再 執(zhí)行類的{}語句塊,如果有多個{}語句塊,則按照代碼順序依次執(zhí)行

3 {}語句執(zhí)行完成之后,則執(zhí)行構造器方法i = 2

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昌平区| 焉耆| 鄂尔多斯市| 赣州市| 明光市| 广元市| 新宁县| 吴旗县| 平度市| 岚皋县| 新乡县| 崇左市| 正定县| 新巴尔虎右旗| 旅游| 庆云县| 左贡县| 长汀县| 上虞市| 松阳县| 阳信县| 霍州市| 禄劝| 南开区| 邹平县| 新竹县| 东乡族自治县| 嘉义县| 方城县| 商都县| 那坡县| 成安县| 隆林| 司法| 彭阳县| 务川| 文登市| 泗洪县| 鄂托克旗| 安西县| 新邵县|