隨筆 - 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
          主站蜘蛛池模板: 康乐县| 杭州市| 武汉市| 镇雄县| 定西市| 渝中区| 龙游县| 乐昌市| 普兰县| 太和县| 盈江县| 郓城县| 广东省| 新平| 枞阳县| 永吉县| 开封县| 泰来县| 三河市| 沙湾县| 那曲县| 浦县| 通河县| 班玛县| 潜山县| 博客| 龙口市| 沧源| 宁国市| 正宁县| 长岭县| 大邑县| 温泉县| 桦川县| 驻马店市| 东光县| 虎林市| 鸡西市| 铁岭市| 保德县| 沁水县|