隨筆 - 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
          主站蜘蛛池模板: 新河县| 乌海市| 安宁市| 邳州市| 玉龙| 镇雄县| 鄯善县| 密山市| 泗水县| 丰都县| 台湾省| 巴彦淖尔市| 临桂县| 海晏县| 绿春县| 大冶市| 抚州市| 浮山县| 大荔县| 凤山县| 台安县| 沙湾县| 资兴市| 阳东县| 林口县| 九寨沟县| 富阳市| 罗平县| 绥阳县| 肃北| 昌都县| 海阳市| 东方市| 庆城县| 辽源市| 金乡县| 邹城市| 景洪市| 略阳县| 水富县| 綦江县|