<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)論
      

    主站蜘蛛池模板: 亚洲精品免费在线观看| 免费在线观看黄色毛片| 亚洲小视频在线观看| 最近免费mv在线观看动漫| 亚洲老妈激情一区二区三区| 国产又黄又爽又大的免费视频 | 久9热免费精品视频在线观看| 亚洲熟女少妇一区二区| 99在线视频免费观看| 亚洲伊人色欲综合网| 日本人成在线视频免费播放| 亚洲综合激情九月婷婷 | 成年在线观看网站免费| 精品亚洲成在人线AV无码| 日韩中文无码有码免费视频 | 国产精品久久久久免费a∨| 最新国产精品亚洲| 午夜影视在线免费观看| 四虎影视永久在线精品免费| 亚洲精品中文字幕乱码三区| 中文字幕视频免费| 亚洲欧洲免费无码| 丁香五月亚洲综合深深爱| 欧洲人免费视频网站在线| 亚洲国产成人91精品| 国产精品美女自在线观看免费 | 美女视频黄频a免费大全视频| 亚洲国产精品日韩专区AV| 免费成人高清在线视频| 亚洲五月丁香综合视频| 夜色阁亚洲一区二区三区| 亚洲午夜免费视频| 亚洲视频无码高清在线| 亚洲伊人成无码综合网| 国产成人精品免费午夜app| 老司机精品视频免费| 亚洲视频网站在线观看| 国产乱子伦精品免费无码专区| 无码人妻精品中文字幕免费| 色欲aⅴ亚洲情无码AV| 久久精品亚洲综合|