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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 人人艹在线视频 | 免费看黄色大片 | 深夜福利入口 | 久久精品国产只有精品 | 91制片厂制作果冻传媒八夷 | 国产亚洲精品美女久久久 | 99热精品在线播放 | 搞逼综合网 | 国产永久免费视频m3u8 | 日韩一级片在线观看 | 99精品视频免费观看 | 午夜国产福利视频一区 | 久久机热免费视频 | 欧美精品色精品一区二区三区 | 亚洲国产成人精品无码区APP | 男同桌扒开女同桌胸罩喝奶 | 亚洲国产在线观看免费视频 | 亚洲国产免费 | 日韩大片在线 | 日本孕妇与黑人xxxxxx | 国产一区二区三区丶四区 | 九九九精品视频 | 天堂在线观看中文字幕 | 欧美亚洲国产一区二区三区 | 国产在线观看福利 | 国产一区二区免费福利片 | 91麻豆精品国产自产在线观看 | 99久久伊人精品波多野结衣 | 欧美在线成人免费国产 | 亚洲天堂999| 成人伊人青草久久综合网破解版 | 四虎永久在线精品波多野结衣 | sss在线播放 | 男人天堂网www | 色综合久久最新中文字幕 | 精品精品国产自在久久高清 | 精品在线视频一区 | 极品奶妈漫画 | 99午夜| 亚洲一成人毛片 | 福利视频一区二区三区 |