五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java

2023-07-20 12:17 作者:耀有上鏡心88  | 我要投稿

在Java語言的異常處理中,finally塊的作用就是為了保證無論出現(xiàn)什么情況,finally塊里的代碼一定會被執(zhí)行。

由于程序執(zhí)行return就意味著結(jié)束對當前函數(shù)的調(diào)用并跳出這個函數(shù)體,因此任何語句要執(zhí)行都只能在return前執(zhí)行(除非碰到exit函數(shù)),因此finally塊里的代碼也是在return之前執(zhí)行的。

此外,如果try-finally或者catch-finally中都有return,那么finally塊中的return將會覆蓋別處的return語句,最終返回到調(diào)用者那里的是finally中return的值。

面試題舉例:在finally塊中改變基本數(shù)據(jù)類型、引用類型對比。

?public class Test{

public static int testFinally1(){

int result = 1;

try {

result = 2;

return result;

} catch (Exception e) {

return 0;

}finally{

result = 3;

System.out.println("execute finally1");

}

}

public static StringBuffer testFinally2(){

StringBuffer s = new StringBuffer("Hello");

try {

return s;

} catch (Exception e) {

return null;

}finally{

s.append(" World");

System.out.println("execute finally2");

????????????????}

}

public static void main(String[] args){

// 測試基本數(shù)據(jù)

int result = testFinally1();

System.out.println(result);

//測試引用數(shù)據(jù)類型

StringBuffer resultRef = testFinally2();

System.out.println(resultRef);

}

}

運行結(jié)果:

execute finally1

2

execute finally2

Hello World

?結(jié)果解釋:程序在執(zhí)行到return時會首先將返回值存儲在一個指定的位置,其次去執(zhí)行finally塊,最后再返回。在方法testFinally1中調(diào)用return前,先把result的值1存儲在一個指定的位置,然后再去執(zhí)行finally塊中的代碼,此時修改result的值將不會影響到程序的返回結(jié)果。

testFinally2中,在調(diào)用return前先把s存儲到一個指定的位置,由于s為引用類型,因此在finally中修改s將會修改程序的返回結(jié)果。

?

拓展:出現(xiàn)在Java程序中的finally塊是不是一定會被執(zhí)行?

答案:不一定。

下面給出兩個finally塊不會被執(zhí)行的例子:

(1)、當程序進入try塊之前就出現(xiàn)異常時,會直接結(jié)束,不會執(zhí)行finally塊中的代碼。


(2)、當程序在try塊中強制退出時也不會去執(zhí)行finally塊中的代碼,示例如下:

例如try塊中通過調(diào)用System.exit(0)強制退出了程序,因此導(dǎo)致finally塊中的代碼沒有被執(zhí)行。

千鋒教育Java入門全套視頻教程(java核心技術(shù),適合java零基礎(chǔ),Java的評論 (共 條)

分享到微博請遵守國家法律
铁岭市| 永寿县| 本溪| 吉木乃县| 闸北区| 琼结县| 饶阳县| 乌海市| 扎鲁特旗| 浑源县| 海兴县| 娱乐| 雷山县| 镇坪县| 镇远县| 奉节县| 邵阳县| 手游| 聂荣县| 通城县| 南汇区| 兰坪| 叙永县| 汝阳县| 凌源市| 宜阳县| 澳门| 江川县| 富蕴县| 赤水市| 新郑市| 阿城市| 台江县| 青海省| 榕江县| 麻阳| 洛阳市| 广州市| 景东| 桓台县| 云南省|