国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 舟山市| 边坝县| 江华| 白山市| 焦作市| 长阳| 临泉县| 沂南县| 嫩江县| 平果县| 宿迁市| 刚察县| 米泉市| 龙州县| 芦溪县| 永春县| 屯门区| 中西区| 三穗县| 施秉县| 会宁县| 张掖市| 平泉县| 夹江县| 乡城县| 怀来县| 龙南县| 喀什市| 昭通市| 微山县| 高台县| 阳江市| 红安县| 黑水县| 溆浦县| 兴义市| 化州市| 扎鲁特旗| 武山县| 江西省| 木里|