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

    posted on 2009-04-01 11:54 二胡 閱讀(2184) 評(píng)論(10)  編輯  收藏 所屬分類(lèi): Java

    評(píng)論

    # re: try catch finally一點(diǎn)疑惑[未登錄](méi) 2009-04-01 12:20 jbahamut
    return 壓棧,執(zhí)行finally,方法返回

    第一個(gè)test中return壓棧后,棧中的值沒(méi)有變,所以返回4  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-01 13:12 sex
    就是先把return后面的值保存起來(lái)了 執(zhí)行finally之后 再返回  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-01 14:07 隔葉黃鶯
    finally 相當(dāng)于一個(gè)小例程  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-01 14:07 JetMa
    @jbahamut
    正解  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-01 20:31 dennis
    看字節(jié)碼
      回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-02 08:25 erhu
    @jbahamut
    哦,原來(lái)是這樣的!  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-02 10:47 Fingki.li
    finally塊里盡量避免使用return,會(huì)吃掉exception.  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑[未登錄](méi) 2009-04-03 09:03 GreatGhoul
    大開(kāi)眼界呀.有這種用法.  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-04-05 14:02 shivaree
    受教了。。。這些小概念都很奇特啊。  回復(fù)  更多評(píng)論
      

    # re: try catch finally一點(diǎn)疑惑 2009-10-29 20:03 yonder
    try catch finally是同一個(gè)方法,就是同一個(gè)棧里面,所以退棧來(lái)解釋是錯(cuò)誤的.這是因?yàn)閞eturn i;已經(jīng)執(zhí)行,已經(jīng)把i的值拷貝一個(gè)臨時(shí)變量,這個(gè)語(yǔ)句有好幾個(gè)匯編語(yǔ)句組成的,所以?xún)H僅是整個(gè)方法返回這一步執(zhí)行之前,才去執(zhí)行finally語(yǔ)句,在finally里面改變i的值,但是已經(jīng)不能改變前面那個(gè)臨時(shí)變量了.  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲Av永久无码精品一区二区| 日韩国产免费一区二区三区| 亚洲熟妇AV日韩熟妇在线| 亚洲中文字幕无码不卡电影| 日韩精品免费电影| 黄瓜视频影院在线观看免费| 国产99视频精品免费专区| 国产激情久久久久影院老熟女免费 | 日韩免费无码一区二区视频| 最近2019免费中文字幕6| 黄视频在线观看免费| 黄色毛片视频免费| 亚洲国产精品成人午夜在线观看 | 18禁在线无遮挡免费观看网站| 亚洲色大成网站WWW国产| 亚洲日韩中文字幕天堂不卡| 亚洲国产成人久久精品影视 | 日本亚洲欧洲免费天堂午夜看片女人员| 国产亚洲精品美女久久久久| 亚洲精品无码中文久久字幕| 亚洲av永久综合在线观看尤物| 亚洲国产一区国产亚洲| 国产av天堂亚洲国产av天堂| 亚洲日韩精品A∨片无码| 狠狠亚洲狠狠欧洲2019| 亚洲精品高清一二区久久| 亚洲av区一区二区三| 又大又硬又爽免费视频| 可以免费观看一级毛片黄a | 亚洲国产精品无码久久| 亚洲欧好州第一的日产suv| 亚洲性无码AV中文字幕| 亚洲精品无码不卡在线播放| 亚洲精品无码永久在线观看男男| 亚洲熟妇AV乱码在线观看| 亚洲日韩AV一区二区三区中文 | 免费看污成人午夜网站| 精品久久久久久久久免费影院| 99久久久国产精品免费无卡顿| 成年人视频免费在线观看| 最近中文字幕免费mv视频7|