程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 談談Java中try-catch-finally中的return語句

談談Java中try-catch-finally中的return語句

編輯:關於JAVA

談談Java中try-catch-finally中的return語句。本站提示廣大學習愛好者:(談談Java中try-catch-finally中的return語句)文章只能為提供參考,不一定能成為您想要的結果。以下是談談Java中try-catch-finally中的return語句正文


我們曉得return語句用在某一個辦法中,一是用於前往函數的履行成果,二是用於前往值為void類型的函數中,僅僅是一個return語句(return ;),此時用於停止辦法的履行,也即此return後的語句將不會被履行,固然,這類情形下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;
}
} 

那末這三個辦法的履行成果是若干呢?

代碼一:前往1;
代碼二:前往3;
代碼三:前往0;

個中的道理是怎樣回事呢?

  緣由是java虛擬機在履行具有前往值的辦法時,會在當地變量列表中創立一塊區域來存儲辦法的前往值,在履行前往語句時便會從這個區域中讀取值停止前往。

  代碼一中在try中將1賦值給變量x,然後將變量x的值復制到存儲前往值的區域,最初前往值區域存儲的就是1,履行前往語句時便前往一。

  而在代碼二中,異樣將1賦值給變量x,然後將x的值復制到存儲前往值的區域,此時前往值的區域的值為1,然後跳轉到finally語句中,此時將3賦值給部分變量x,然後在將x的 值復制到存儲前往值的區域,最初履行前往語句,讀取到的前往區域中的值就是3.

  代碼三中,try中履行的語句是一樣的,跳轉到了finally語句中後,將3賦值給部分變量,然後將0賦值到存儲前往值的區域,最初履行前往語句,讀取到的前往區域中的值就是 0,所以就前往0。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved