一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 通過java字節碼分析學習對象初始化順序

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

2019-10-22 11:38java技術網 Java教程

今天用了jmock對進行單元測試編碼,發現一個比較奇怪的語法,static使用方法,見下面例子

代碼如下:


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字節碼分析,發現代碼的執行順序如下:

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品99久久 | 男人和女人全黄一级毛片 | 亚洲 欧美 中文 日韩 视频 | 色先锋 影音先锋a 资源站 | 亚洲品质自拍视频网站 | 国产91区 | 国产男女乱淫真视频全程播放 | 大团圆6全文在线阅读 | 擦逼视频 | 高清色黄毛片一级毛片 | 调教女帝 | av91在线| 日本精品久久久久中文字幕 1 | 日韩大片在线播放 | 青青成人在线 | 免费一级特黄特色大片在线 | 日韩一卡2卡3卡新区网站 | 青青草国产精品久久碰 | 亚洲精品综合一二三区在线 | 欧美区视频 | 99视频久久 | 国产男女爱视频在线观看 | 99视频在线免费观看 | 欧美sq | 日产2021免费一二三四区 | 色在线亚洲视频www 色欲麻豆国产福利精品 | 亚洲国产99在线精品一区二区 | 日本福利片国产午夜久久 | 免费jizz在在线播放国产 | 视频在线欧美 | 特级夫妻大片免费在线播放 | 亚洲国产成人久久综合一区77 | 日本一区二区视频在线观看 | 99精品免费视频 | 精品无码一区二区三区中文字幕 | 成人啪精品视频免费网站 | 香港论理午夜电影网 | 福利视频一区二区牛牛 | 99国产精品免费视频 | 成人免费视频大全 | 欧美大片一区 |