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

          一個小程序內部的運行次序

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

          輸出結果為:

          static
          try
          finally
          test:1

           

           


           

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

          評論

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

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

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

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

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

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

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

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

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

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

          @xylz
          之前的回復我不是猜的。只是我不夠嚴謹。沒有在incr()內加入sysout,就認為不運行incr()了,
          看來,我還有很多很多不懂的。謝謝您。
          2010-08-10 09:51 | jack zhai
          主站蜘蛛池模板: 黑龙江省| 巴东县| 镇宁| 太保市| 凤庆县| 石首市| 安泽县| 雷波县| 海原县| 喀什市| 黑龙江省| 罗田县| 大新县| 丹巴县| 紫金县| 长垣县| 宜春市| 襄城县| 苏尼特左旗| 茌平县| 台安县| 巴马| 察哈| 松滋市| 车致| 南阳市| 伽师县| 新化县| 军事| 那坡县| 彰化县| 玉林市| 镇沅| 五常市| 潜江市| 梓潼县| 日喀则市| 阜平县| 土默特右旗| 龙陵县| 榕江县|