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

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

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

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

在try-catch-finally語句中使用return語句遇到了一些疑問

代碼一:

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

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

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;
}
} 

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

    緩存工具類ACache使用方法詳解

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

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

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

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

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

    Java FTPClient文件傳輸最佳實踐指南

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

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

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

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

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

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

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

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

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

    idea mybatis配置log4j打印sql語句的示例

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

最新評論

南雄市| 铜山县| 寿光市| 毕节市| 望都县| 通化县| 胶南市| 青州市| 鄂托克前旗| 开阳县| 理塘县| 贵阳市| 天祝| 江西省| 晋城| 宁晋县| 迁安市| 冀州市| 阿克苏市| 土默特左旗| 乾安县| 呼玛县| 南丹县| 秀山| 和平县| 兴隆县| 牙克石市| 天长市| 巴塘县| 井冈山市| 邯郸县| 博客| 嘉义县| 商南县| 新昌县| 墨脱县| 松滋市| 安新县| 台东县| 册亨县| 漯河市|