——希望迎著陽(yáng)光奔跑!

           

          Java程序的執(zhí)行順序

          有這樣的一段程序:
          class Person {
          ?int age = 0;

          ?public Person() {
          ??System.out.println("2、然后執(zhí)行了super");
          ?}

          ?public void fun() {
          ??System.out.println("super.age=" + age);
          ?}
          }

          public class Test4 extends Person {
          ?static {
          ??System.out.println("1、先執(zhí)行了static區(qū)域");
          ?}

          ?int age = 10;

          ?public Test4() {
          ??super.fun();
          ??System.out.println("3、然后執(zhí)行了this() age=" + age);
          ?}

          ?public Test4(int age) {
          ??this();
          ??System.out.println("4、然后執(zhí)行了this(int age) 年齡是:" + age);
          ?}

          ?public static void main(String[] args) {
          ??Test4 test = new Test4(20);
          ?}
          }
          運(yùn)行的結(jié)果如下:
          1、先執(zhí)行了static區(qū)域
          2、然后執(zhí)行了super
          super.age=0
          3、然后執(zhí)行了this() age=10
          4、然后執(zhí)行了this(int age) 年齡是:20
          ????? 有以上程序的運(yùn)行結(jié)果我們不難發(fā)現(xiàn)java程序的執(zhí)行步驟:對(duì)于static域的成員或static變量或static函數(shù)來(lái)說(shuō)在JVM裝載類(lèi)的時(shí)候就已經(jīng)為這些變量分配了實(shí)際的空間。在完成這些工作后,程序再去尋找函數(shù)main()的入口,執(zhí)行main()中的代碼塊。
          ???????在這里順便說(shuō)一下棧空間和堆空間的區(qū)別:個(gè)人認(rèn)為程序運(yùn)行時(shí)它會(huì)申請(qǐng)一片空間,那么在程序中定義的變量在程序運(yùn)行時(shí)都會(huì)占用這片空間中的一塊,而堆空間是通過(guò)new關(guān)鍵字所產(chǎn)生的對(duì)象等所占用的空間。在該程序中,當(dāng)使用new Test4(20)時(shí)程序便會(huì)首先執(zhí)行該類(lèi)中非靜態(tài)變量的默認(rèn)初始化,即在該程序中設(shè)a的初值為0;完成后然后看看構(gòu)造函數(shù)中有沒(méi)有傳遞形參過(guò)來(lái),若有則先完成對(duì)其的賦值,即綁定構(gòu)造方法的參數(shù);然后檢查構(gòu)造函數(shù)中有沒(méi)有this()或super()等形式的代碼,若有則優(yōu)先執(zhí)行,于是在該程序中執(zhí)行代碼this();再跳轉(zhuǎn)到另一個(gè)構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)執(zhí)行與第一個(gè)構(gòu)造函數(shù)一樣的過(guò)程,于是先自動(dòng)調(diào)用父類(lèi)的構(gòu)造函數(shù)執(zhí)行其中的代碼,然后再去對(duì)在類(lèi)中定義的變量完成顯示的初始化。一切工作完成后便會(huì)接著執(zhí)行構(gòu)造后數(shù)中那些真正屬于它的代碼段。

          posted on 2006-09-12 15:17 Ark 閱讀(1295) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(2)

          隨筆檔案

          Java 志士

          Tecnology collection

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 慈溪市| 哈尔滨市| 竹北市| 莲花县| 疏附县| 商河县| 门头沟区| 友谊县| 石泉县| 噶尔县| 金坛市| 济阳县| 瓮安县| 梅州市| 乌鲁木齐市| 梁平县| 中西区| 石嘴山市| 什邡市| 老河口市| 乌拉特中旗| 司法| 龙州县| 靖江市| 阿瓦提县| 揭东县| 彩票| 奉新县| 大足县| 拉萨市| 金溪县| 黄梅县| 江口县| 哈巴河县| 印江| 于田县| 黔西县| 娄底市| 博爱县| 北票市| 镶黄旗|