欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

我們知道return語句用在某一個方法中,一是用于返回函數(shù)的執(zhí)行結(jié)果,二是用于返回值為void類型的函數(shù)中,僅僅是一個return語句(return ;),此時用于結(jié)束方法的執(zhí)行,也即此return后的語句將不會被執(zhí)行,當然,這種情況下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的值復制到存儲返回值的區(qū)域,最后返回值區(qū)域存儲的就是1,執(zhí)行返回語句時便返回一。

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

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

相關(guān)文章

  • 關(guān)于Java中Object類的幾個方法示例

    關(guān)于Java中Object類的幾個方法示例

    這篇文章主要給大家介紹了關(guān)于Java中Object類的幾個方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-05-05
  • Springboot中PropertySource的結(jié)構(gòu)與加載過程逐步分析講解

    Springboot中PropertySource的結(jié)構(gòu)與加載過程逐步分析講解

    本文重點講解一下Spring中@PropertySource注解的使用,PropertySource主要是對屬性源的抽象,包含屬性源名稱name和屬性源內(nèi)容對象source。其方法主要是對這兩個字段進行操作
    2023-01-01
  • JDBC環(huán)境設(shè)置(中文詳解)

    JDBC環(huán)境設(shè)置(中文詳解)

    要開始使用JDBC設(shè)置,按照以下所示的步驟開發(fā)JDBC環(huán)境。以下內(nèi)容假設(shè)Windows平臺上
    2014-03-03
  • spring @Transactional 無效的解決方案

    spring @Transactional 無效的解決方案

    這篇文章主要介紹了spring @Transactional 無效的解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • java實現(xiàn)遠程桌面的實例代碼

    java實現(xiàn)遠程桌面的實例代碼

    下面小編就為大家分享一篇java實現(xiàn)遠程桌面的實例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Java反射概念與使用實例代碼

    Java反射概念與使用實例代碼

    JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法,下面這篇文章主要給大家介紹了關(guān)于Java反射概念與使用的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • Mybatis參數(shù)處理的幾種方法小結(jié)

    Mybatis參數(shù)處理的幾種方法小結(jié)

    在Mybatis中如何處理參數(shù)是一個非常重要的環(huán)節(jié),本文將詳細介紹 Mybatis 的參數(shù)處理機制,包括傳入?yún)?shù)和返回參數(shù)的處理方式,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • Java中如何避免sql注入實例詳解

    Java中如何避免sql注入實例詳解

    SQL注入是最常見的攻擊方式之一,它不是利用操作系統(tǒng)或其它系統(tǒng)的漏洞來實現(xiàn)攻擊的,而是程序員因為沒有做好判斷,被不法用戶鉆了SQL的空子,下面這篇文章主要給大家介紹了關(guān)于Java中如何避免sql注入的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • 計算一個Java對象占用字節(jié)數(shù)的方法

    計算一個Java對象占用字節(jié)數(shù)的方法

    這篇文章主要介紹了計算一個Java對象占用字節(jié)數(shù)的方法,較為詳細的分析了Java中各類對象所占用的字節(jié)數(shù),需要的朋友可以參考下
    2015-01-01
  • Quarkus集成apollo配置中心

    Quarkus集成apollo配置中心

    這篇文章主要介紹了Quarkus集成apollo配置中心,文中詳細的講解了Quarkus的config構(gòu)成,以及apollo集成實現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02

最新評論