国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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的評論 (共 條)

分享到微博請遵守國家法律
徐闻县| 丰城市| 永昌县| 渭南市| 万载县| 潮州市| 南投市| 梁山县| 当雄县| 左权县| 山西省| 固阳县| 虞城县| 宜良县| 体育| 略阳县| 彩票| 瓮安县| 屯门区| 沐川县| 绥阳县| 加查县| 皮山县| 京山县| 大足县| 罗江县| 喜德县| 泸州市| 美姑县| 新津县| 定日县| 凤冈县| 罗甸县| 咸阳市| 泾源县| 胶州市| 噶尔县| 衡山县| 磐安县| 云安县| 龙游县|