隨筆 - 45, 文章 - 2, 評論 - 11, 引用 - 0
          數(shù)據(jù)加載中……

          一個小程序內(nèi)部的運行次序

          次序為:
          1、static塊內(nèi)代碼
          2、自上而下的運行代碼
          3、在try{}catch(){}finally{}內(nèi),在try{}內(nèi)遇到return關鍵字的時候,就馬上跳到finally塊內(nèi)執(zhí)行。
          4、執(zhí)行完畢f(xié)inally{}塊后就執(zhí)行剛才的return語句
          注意:finally內(nèi)有return后,方法的其他地方就不能存在return。

          輸出結(jié)果為:

          static
          try
          finally
          test:1

           

           


           

          posted on 2010-08-09 10:11 jack zhai 閱讀(217) 評論(5)  編輯  收藏 所屬分類: java2 se

          評論

          # re: 一個小程序內(nèi)部的運行次序  回復  更多評論   

          int v=0;
          try{
          return incr(v);
          }finally{
          return v-1;
          }
          ----------------

          int incr(v){return v+1);
          ==================
          你覺得返回啥?incr會執(zhí)行么?
          看看JVM規(guī)范吧。
          2010-08-09 15:12 | xylz

          # re: 一個小程序內(nèi)部的運行次序  回復  更多評論   

          返回是-1 ; incr不會執(zhí)行。
          謝謝您的回復。
          2010-08-10 08:14 | jack zhai

          # re: 一個小程序內(nèi)部的運行次序  回復  更多評論   

          @jack zhai
          不要盲目猜測,你試試就知道了
          2010-08-10 08:56 | xylz

          # re: 一個小程序內(nèi)部的運行次序  回復  更多評論   

          @xylz
          你在incr里面輸出一個sysout吧
          2010-08-10 08:56 | xylz

          # re: 一個小程序內(nèi)部的運行次序  回復  更多評論   

          @xylz
          之前的回復我不是猜的。只是我不夠嚴謹。沒有在incr()內(nèi)加入sysout,就認為不運行incr()了,
          看來,我還有很多很多不懂的。謝謝您。
          2010-08-10 09:51 | jack zhai
          主站蜘蛛池模板: 南开区| 准格尔旗| 广南县| 团风县| 太湖县| 萍乡市| 北辰区| 林周县| 建德市| 麻栗坡县| 扬中市| 山丹县| 丹东市| 余干县| 昌黎县| 浙江省| 郑州市| 辉县市| 南岸区| 枝江市| 湘潭市| 江西省| 揭东县| 连江县| 瑞金市| 兰溪市| 台中市| 湟中县| 宁远县| 丹阳市| 甘孜| 成都市| 扎鲁特旗| 平湖市| 玛纳斯县| 株洲市| 西吉县| 弋阳县| 腾冲县| 安新县| 德惠市|