<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    憨厚生

    ----Java's Slave----
    ***Java's Host***

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      165 隨筆 :: 17 文章 :: 90 評論 :: 0 Trackbacks
       在http://www.cnitblog.com/yemoo/archive/2008/06/18/45850.html文中巧用try finally;但是讓我對finally執行過程有點疑惑,發現java的try catch功能和js是一樣的。下面列出例子:
       public int test1(){
       int i=4;
       try{ return i;}finally{ i=0;System.out.println("---test----");}
    }
       執行結果:輸出---test----,test1方法返回4;我的疑惑是為什么不返回0
       在QQ群里討論的時候,有人說finally中的語句在try中的return后執行。但是如下代碼執行否決了上面的結論。
    public int test2(){
       int i=4;
       try{ return i;}finally{ i=0;System.out.println("---test----");return i;}
    }
       注意:在finally中多了個return i;
       執行結果:輸出---test----,test2方法返回0;
       這個例說明了finally中的語句是在try的return執行前執行的。那么test1方法的finally中i=0了,但是為什么test1方法還返回4呢?這是我的疑惑,那位知道解釋一下。

    posted on 2009-04-01 11:54 二胡 閱讀(2185) 評論(10)  編輯  收藏 所屬分類: Java

    評論

    # re: try catch finally一點疑惑[未登錄] 2009-04-01 12:20 jbahamut
    return 壓棧,執行finally,方法返回

    第一個test中return壓棧后,棧中的值沒有變,所以返回4  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-01 13:12 sex
    就是先把return后面的值保存起來了 執行finally之后 再返回  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-01 14:07 隔葉黃鶯
    finally 相當于一個小例程  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-01 14:07 JetMa
    @jbahamut
    正解  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-01 20:31 dennis
    看字節碼
      回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-02 08:25 erhu
    @jbahamut
    哦,原來是這樣的!  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-02 10:47 Fingki.li
    finally塊里盡量避免使用return,會吃掉exception.  回復  更多評論
      

    # re: try catch finally一點疑惑[未登錄] 2009-04-03 09:03 GreatGhoul
    大開眼界呀.有這種用法.  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-04-05 14:02 shivaree
    受教了。。。這些小概念都很奇特啊。  回復  更多評論
      

    # re: try catch finally一點疑惑 2009-10-29 20:03 yonder
    try catch finally是同一個方法,就是同一個棧里面,所以退棧來解釋是錯誤的.這是因為return i;已經執行,已經把i的值拷貝一個臨時變量,這個語句有好幾個匯編語句組成的,所以僅僅是整個方法返回這一步執行之前,才去執行finally語句,在finally里面改變i的值,但是已經不能改變前面那個臨時變量了.  回復  更多評論
      

    主站蜘蛛池模板: 亚洲处破女AV日韩精品| 国产精品99久久免费| 西西人体44rt高清亚洲| 高清永久免费观看| 高潮毛片无遮挡高清免费 | 亚洲精品中文字幕| 毛片免费视频在线观看| 亚洲宅男精品一区在线观看| 99久久免费国产香蕉麻豆| 亚洲综合小说另类图片动图| 免费羞羞视频网站| 成人婷婷网色偷偷亚洲男人的天堂 | 亚洲中文字幕乱码熟女在线| 成人男女网18免费视频| 相泽南亚洲一区二区在线播放| 全黄性性激高免费视频| 国产99精品一区二区三区免费| 亚洲国产另类久久久精品黑人 | 无码乱肉视频免费大全合集| 中国亚洲呦女专区| 成人亚洲综合天堂| 国产精品网站在线观看免费传媒| 777亚洲精品乱码久久久久久| 100部毛片免费全部播放完整| 国产成+人+综合+亚洲专| 日韩一区二区在线免费观看| 一级毛片高清免费播放| 久久亚洲精品AB无码播放| 成年免费大片黄在线观看岛国| 亚洲heyzo专区无码综合| 狠狠亚洲狠狠欧洲2019| 免费观看无遮挡www的小视频| 亚洲妇女无套内射精| 亚洲国产一成人久久精品| 最新欧洲大片免费在线 | 日亚毛片免费乱码不卡一区| 亚洲AV日韩AV鸥美在线观看| 欧美日韩国产免费一区二区三区 | 日韩av无码免费播放| 亚洲国产日韩视频观看| 亚洲男人的天堂www|