try塊的乙個需要注意的地方

2021-08-19 02:17:35 字數 487 閱讀 9323

首先看一段**:

public

class test

public

static

intgetvalue() finally

}}

這是今個我在牛客上看到的一道題,以往只知道在try塊中無論try內語句是否執行,finally內的語句總會執行的,而在做此題時由於try內有return,所以以為會在此處中斷方法,即最後的結果為0,但是執行結果卻是return value of getvalue(): 1,這是為什麼呢?

根據jvm規範,在執行完try語句後,若有返回值,則將此返回值先存入區域性變數表中,再執行finally語句,執行完finally語句後返回先前儲存在區域性變數表中的值,但這裡存在乙個問題,就i是如果在執行finally語句時,finally語句內有return,那麼就會在此處中斷方法,而先前存入區域性變數表中的值就無法返回,所以此題返回的是1。

下乙個專案需要注意的地方 專案相關

1.命名規範要統一,不能再像這次這樣有這麼多下劃線.2.新增 時要規範並且有注釋.3.模組要做到低耦合,高內聚.盡量把模組都分開來做.方便分工 4.介面和css樣式表要設計好並統一化 5.編碼集要都用utf 8,什麼語言都能顯示 gbk只能顯示中文,gb2312只能顯示簡體中文 6.用el表示式來讀...

java需要注意的地方2

1.abstract class name 大俠們,這有何錯誤?答案 錯。abstract method必須以分號結尾,且不帶花括號。2.public class something 有錯嗎?答案 錯。區域性變數前不能放置任何訪問修飾符 private,public,和protected final...

unique約束需要注意的地方

sql 建立作者表 create table author 主鍵 id int primary key,姓名不能為空 name nvarchar 8 not null,年齡必須大於0小於120 age tinyint constraint ck age check age 0 and age 120...