最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

談?wù)凧ava中try-catch-finally中的return語(yǔ)句

 更新時(shí)間:2016年01月20日 14:44:13   作者:守、護(hù)  
我們知道return語(yǔ)句用在某一個(gè)方法中,一是用于返回函數(shù)的執(zhí)行結(jié)果,二是用于返回值為void類(lèi)型的函數(shù)中,僅僅是一個(gè)return語(yǔ)句(return ;),此時(shí)用于結(jié)束方法的執(zhí)行,也即此return后的語(yǔ)句將不會(huì)被執(zhí)行,當(dāng)然,這種情況下return語(yǔ)句后不能再有其它的語(yǔ)句了

我們知道return語(yǔ)句用在某一個(gè)方法中,一是用于返回函數(shù)的執(zhí)行結(jié)果,二是用于返回值為void類(lèi)型的函數(shù)中,僅僅是一個(gè)return語(yǔ)句(return ;),此時(shí)用于結(jié)束方法的執(zhí)行,也即此return后的語(yǔ)句將不會(huì)被執(zhí)行,當(dāng)然,這種情況下return語(yǔ)句后不能再有其它的語(yǔ)句了。

在try-catch-finally語(yǔ)句中使用return語(yǔ)句遇到了一些疑問(wèn)

代碼一:

static int intc(){
int x =0;
try{
x=1;
return x;
}finally {
x = 3; 
}
}

代碼二:在上面那段代碼的finally語(yǔ)句中加入了return語(yǔ)句

static int intc(){
int x =0;
try{
x=1;
return x;
}finally {
x = 3;
return x;
}
} 

代碼三:

static int intc(){
int x =0;
try{
x=1;
return x;
}finally {
x = 3;
return 0;
}
} 

那么這三個(gè)方法的執(zhí)行結(jié)果是多少呢?

代碼一:返回1;
代碼二:返回3;
代碼三:返回0;

其中的原理是怎么回事呢?

  原因是java虛擬機(jī)在執(zhí)行具有返回值的方法時(shí),會(huì)在本地變量列表中創(chuàng)建一塊區(qū)域來(lái)存儲(chǔ)方法的返回值,在執(zhí)行返回語(yǔ)句時(shí)便會(huì)從這個(gè)區(qū)域中讀取值進(jìn)行返回。

  代碼一中在try中將1賦值給變量x,然后將變量x的值復(fù)制到存儲(chǔ)返回值的區(qū)域,最后返回值區(qū)域存儲(chǔ)的就是1,執(zhí)行返回語(yǔ)句時(shí)便返回一。

  而在代碼二中,同樣將1賦值給變量x,然后將x的值復(fù)制到存儲(chǔ)返回值的區(qū)域,此時(shí)返回值的區(qū)域的值為1,然后跳轉(zhuǎn)到finally語(yǔ)句中,此時(shí)將3賦值給局部變量x,然后在將x的 值復(fù)制到存儲(chǔ)返回值的區(qū)域,最后執(zhí)行返回語(yǔ)句,讀取到的返回區(qū)域中的值就是3.

  代碼三中,try中執(zhí)行的語(yǔ)句是一樣的,跳轉(zhuǎn)到了finally語(yǔ)句中后,將3賦值給局部變量,然后將0賦值到存儲(chǔ)返回值的區(qū)域,最后執(zhí)行返回語(yǔ)句,讀取到的返回區(qū)域中的值就是 0,所以就返回0。

相關(guān)文章

  • Springboot事務(wù)失效的幾種情況解讀

    Springboot事務(wù)失效的幾種情況解讀

    這篇文章主要介紹了Springboot事務(wù)失效的幾種情況解讀,因?yàn)镾pring AOP默認(rèn)使用動(dòng)態(tài)代理,會(huì)給被代理的類(lèi)生成一個(gè)代理類(lèi),事務(wù)相關(guān)的操作都通過(guò)代理來(lái)完成,使用內(nèi)部方法調(diào)用時(shí),使用的是實(shí)例調(diào)用,沒(méi)有通過(guò)代理類(lèi)調(diào)用方法,因此事務(wù)不會(huì)檢測(cè)到失敗,需要的朋友可以參考下
    2023-10-10
  • 緩存工具類(lèi)ACache使用方法詳解

    緩存工具類(lèi)ACache使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了緩存工具類(lèi)ACache的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法詳細(xì)講解

    Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法詳細(xì)講解

    這篇文章主要介紹了Mybatis實(shí)現(xiàn)傳入多個(gè)參數(shù)的四種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • Java實(shí)現(xiàn)權(quán)重隨機(jī)算法詳解

    Java實(shí)現(xiàn)權(quán)重隨機(jī)算法詳解

    平時(shí),經(jīng)常會(huì)遇到權(quán)重隨機(jī)算法,從不同權(quán)重的N個(gè)元素中隨機(jī)選擇一個(gè),并使得總體選擇結(jié)果是按照權(quán)重分布的。本文就詳細(xì)來(lái)介紹如何實(shí)現(xiàn),感興趣的可以了解一下
    2021-07-07
  • Java FTPClient文件傳輸最佳實(shí)踐指南

    Java FTPClient文件傳輸最佳實(shí)踐指南

    Apache Commons Net的FTPClient封裝FTP協(xié)議,提供跨平臺(tái)、安全的文件傳輸API,支持自動(dòng)連接管理、ASCII/BINARY模式、錯(cuò)誤碼處理及分頁(yè)目錄解析,簡(jiǎn)化開(kāi)發(fā)流程并保障數(shù)據(jù)完整性,本文給大家介紹Java FTPClient文件傳輸最佳實(shí)踐,感興趣的朋友一起看看吧
    2025-09-09
  • java String類(lèi)常量池分析及

    java String類(lèi)常量池分析及"equals"和"==”區(qū)別詳細(xì)介紹

    這篇文章主要介紹了java String類(lèi)常量池分析及"equals"和"==”區(qū)別詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Mybatis generator mapper文件覆蓋原文件的示例代碼

    Mybatis generator mapper文件覆蓋原文件的示例代碼

    這篇文章主要介紹了Mybatis generator mapper文件覆蓋原文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java開(kāi)發(fā)支付寶PC支付完整版

    Java開(kāi)發(fā)支付寶PC支付完整版

    這篇文章主要介紹了Java開(kāi)發(fā)支付寶PC支付完整版,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • java實(shí)現(xiàn)郵件發(fā)送詳解

    java實(shí)現(xiàn)郵件發(fā)送詳解

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)郵件發(fā)送示例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • idea mybatis配置log4j打印sql語(yǔ)句的示例

    idea mybatis配置log4j打印sql語(yǔ)句的示例

    本篇文章主要介紹了idea mybatis配置log4j打印sql語(yǔ)句的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論

中江县| 大厂| 定远县| 嘉鱼县| 晴隆县| 桑日县| 合作市| 腾冲县| 青岛市| 滨州市| 汶上县| 建阳市| 乌鲁木齐市| 五指山市| 隆安县| 临安市| 拉萨市| 沂源县| 若羌县| 信阳市| 大悟县| 资兴市| 昌都县| 邵阳县| 高州市| 获嘉县| 武宁县| 凤凰县| 瑞昌市| 辽阳县| 乌什县| 弥渡县| 永德县| 湖北省| 林口县| 西乡县| 湖口县| 嘉峪关市| 郁南县| 奉新县| 田阳县|