麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Java > 正文

在Java中自由塊的執(zhí)行順序

2019-11-26 16:12:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • java中的自由塊分為靜態(tài)的自由塊和非靜態(tài)的自由塊。
  • 非靜態(tài)自由塊的執(zhí)行時(shí)間是:在執(zhí)行構(gòu)造函數(shù)之前。
  • 靜態(tài)自由塊的執(zhí)行時(shí)間是:class文件加載時(shí)執(zhí)行。
  • 非靜態(tài)自由塊可以多次執(zhí)行,只要初始化一個(gè)對(duì)象就會(huì)執(zhí)行,但是靜態(tài)自由塊只會(huì)在類裝載的時(shí)候執(zhí)行一次,一般用來(lái)初始化類的靜態(tài)變量的值。
  • 每次初始化一個(gè)對(duì)象,都會(huì)導(dǎo)致一次非靜態(tài)塊的執(zhí)行。
  • 如果涉及到繼承,則是:首先執(zhí)行父類的非靜態(tài)塊,然后是父類的構(gòu)造函數(shù),接著是自己的自由塊,最后是自己的構(gòu)造函數(shù)。
  • 靜態(tài)塊的執(zhí)行時(shí)機(jī)是在class文件裝載的時(shí)候,class文件只會(huì)裝載一次,因此靜態(tài)塊只會(huì)執(zhí)行一次,后面再使用這個(gè)類時(shí),不會(huì)再執(zhí)行靜態(tài)塊。 
  • 靜態(tài)塊的執(zhí)行時(shí)機(jī)是在class裝載后的初始化階段。如果采用ClassLoader的loadclass來(lái)僅僅裝 載類而不初始化,是不會(huì)觸發(fā)靜態(tài)塊的執(zhí)行的。采用Class的forname(String)是采用了默認(rèn)的initialize為true的情況,也就 是初始化了。如果使用forname(String name,boolean initialize, ClassLoader loader),設(shè)置initialize為false,則不會(huì)執(zhí)行靜態(tài)塊。
  • 在執(zhí)行class裝載后的初始化階段包括:運(yùn)行<clinit>方法,這個(gè)方法中就是類變量的初始化語(yǔ)句和靜態(tài)自由塊語(yǔ)句。這個(gè)方法是由java的編譯器收集信息后生成的,不能顯示的調(diào)用。

下面通過(guò)例子來(lái)說(shuō)明:

父類

復(fù)制代碼 代碼如下:

father.java

public class father {

    static{//靜態(tài)塊
       System.out.println("father'sSTATIC free block running");
    }

    {//非靜態(tài)塊
 System.out.println("father'sfree block running");
    }

    public father(){

       System.out.println("father'sconstructor running");

    }
}

子類

復(fù)制代碼 代碼如下:

son.java
public class son extends father{
    static{//靜態(tài)塊
       System.out.println("son'sSTATIC free block running");
    }

    {//非靜態(tài)塊
       System.out.println("son's freeblock running");
    }

    public son() {
       // TODO Auto-generated constructor stub
       System.out.println("son'sconstructor running");
    }
}

主函數(shù)所在類

復(fù)制代碼 代碼如下:

test.java

public class test{

      public static void main(String[] args) {

       Class f;

       try {

           System.out.println("--------beforeload father--------");

           f=Class.forName("freeblock.father");

           System.out.println("--------afterload father---------");        

           System.out.println("--------beforeinitial father object--------");

           f.newInstance();

           System.out.println("--------afterinitial father object--------");

       } catch (ClassNotFoundException e) {

           e.printStackTrace();

       } catch (InstantiationException e) {
           e.printStackTrace();

       } catch (IllegalAccessException e) {

           e.printStackTrace();
       }     
       Class s;

       try {

           System.out.println("-------beforeload son--------");

           s=Class.forName("freeblock.son");

           System.out.println("--------afterload son-------");

           System.out.println("--------beforeinitial son object----------");

           s.newInstance();

           System.out.println("--------afterinitial son object-----------");

       } catch (ClassNotFoundException e) {
           e.printStackTrace();
       } catch (InstantiationException e) {
           e.printStackTrace();
       } catch (IllegalAccessException e) {
           e.printStackTrace();
       }
    }
}

執(zhí)行結(jié)果:

--------before loadfather--------

father's STATIC free blockrunning

--------after loadfather---------

--------before initial fatherobject--------

father's free block running

father's constructor running

--------after initial fatherobject--------

-------before load son--------

son's STATIC free block running

--------after load son-------

--------before initial sonobject----------

father's free block running

father's constructor running

son's free block running

son's constructor running

--------after initial son object-----------

 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 永久免费av在线 | 国产噜噜噜| 日韩剧情片 | av电影网在线观看 | 亚洲卡通动漫在线观看 | 黑人一区二区 | 成人啪啪18免费网站 | 欧美亚洲国产一区二区三区 | 成人三级黄色片 | 一级黄色在线免费观看 | 欧美伦交| 久久精品亚洲一区 | 久久久久久久久久久久久久久伊免 | 激情宗合网 | 久久免费综合视频 | 69性欧美高清影院 | 亚洲午夜久久久精品一区二区三区 | 在线亚洲播放 | 久久国产精品久久久久久电车 | 欧美18一19sex性护士农村 | 亚洲国产视频网 | 日美黄色片 | 国产自在线 | 久久亚洲精选 | 91精品国产乱码久久桃 | 免费久久精品 | 国产精品一区网站 | 双性精h调教灌尿打屁股的文案 | 免费永久在线观看黄网 | 黄色99视频 | 午夜神马电影网 | 嗯~啊~弄嗯~啊h高潮视频 | 国产精品欧美日韩一区二区 | av免费入口 | 国产精品久久久久久久久久10秀 | 深夜小视频在线观看 | 黄色视品 | 欧美成人综合视频 | 欧美精品成人 | 免费国产人成网站 | 久久精品中文字幕一区 |