public int test() {
int x = 1;
try {
return x;
}
finally {
++ x;
}
}
- 第一步:執行try上面代碼
- 第二步:執行try中代碼(包含return後面的計算不包含return)
- 具體順序:先執行try中return上面的代碼,然後執行return後面的計算,並單獨保存在內存中(位置:局部變量表中的特定的位置)---注意:此時並沒有執行return
- 第三步:執行finally快中代碼,即++x
- 第四步:return
- 解釋:直接取出第二步已經保存的值並返回(return),即在第二步中已經計算過了return後面的值,第三步執行的計算結果已經用不上了
- 第五步:假如finally塊下面(大括號下面,finally外面)有一步return語句,這一步執行不到!!!
我的記錄是不是醍醐灌頂?那是不是考慮給小編一個小小的打賞?,