1. 程式人生 > >try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?

try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?

public class Test1 {
    public static void main(String[] args) {
        System.out.println("返回的值為:"+new Test1().test());
    }

    public int test(){
        int i=1;
        try{
            System.out.println("try中的i值為:"+i);
            return i;
        }finally{
            System.out.println("進入finally....");
            ++i;
            System.out.println("finally中的i值為:"+i);
        }
    }
}

列印:

try中的i值為:1
進入finally....
finally中的i值為:2
返回的值為:1

在try語句中,在執行return語句的時候,把返回結果已經準備好了,而此時,程式轉到finally中執行了,在轉去之前,try中先把返回結果儲存在不同於i的區域性變數中,執行完finally後再取出這個結果,所以返回值是1.

public class Test1 {
    public static void main(String[] args) {
        System.out.println("返回的值為:"+new Test1().test());
    }

    public int test(){
        int i=1;
        try{
            System.out.println("try中的i值為:"+i);
            return i;
        }finally{
            System.out.println("進入finally....");
            ++i;
            System.out.println("finally中的i值為:"+i);
            return i;
        }
    }
}

在finally中加一句return i;列印結果:

try中的i值為:1
進入finally....
finally中的i值為:2
返回的值為:2

try裡的return 和 finally裡的return 都會支援,但是當前方法只會採納finally中return的值

相關推薦

try {}一個return語句那麼緊跟這個tryfinally {}code執行什麼時候執行return還是?

public class Test1 { public static void main(String[] args) { System.out.println("返回的值為:"+new Test1().test()); } pu

java基礎面試題:try{}裏一個return語句那麽緊跟這個tryfinally {}裏的code執行什麽時候執行return還是?

nal java pan clas out bsp 出現 可能 inf package com.swift; public class Try_Catch_Finally_Test { public static void main(String[] args

try{}裡面return,finally的程式碼執行,什麼時候執行?

給出答案:會執行,在方法返回給呼叫者前執行,因為如果存在finally程式碼塊,try中的return語句不會立馬返回給呼叫者,而是記錄下返回值待finally程式碼塊執行完畢之後再返回;注意這幾點:1

一個執行緒多個handler多少個looperlooper如何區分handler導致訊息錯亂。

面試題: 問題1:一個執行緒中初始化多個handler,會產生多少個looper? 問題2:如果只有一個looper,looper如何區分handler,handler傳送了訊息會不會導致Looper錯亂,最終不知道誰處理。 1 一個執行緒中初始化多個handler,會

tryfinally {}的程式碼執行什麼時候執行?

先看下面一段程式碼 static void Main(string[] args) { Console.WriteLine(GetIt());

混亂中的ICO平臺是下一個P2P的重災區?

ico平臺當眾多巨頭和創業者還在為共享打車、共享單車、VR、IP化、互聯網金融沈迷時,一種全新的“眾籌”正在造就一個又一個暴富神話。其名為ICO,即首次代幣眾籌,一般指區塊鏈初創項目在眾籌平臺上發行項目代幣,投資者使用指定數字貨幣購買代幣為項目進行眾籌行為。而近段時間以來,國內外ICO市場井噴式爆發。今年初至

聯網玩具成為騙子的下一個入侵“窗口”?

聯網玩具一直以來,網上頻發爆出的幼兒園虐待、校園暴力、陌生人拐賣等事件,都讓已經有了孩子的家長為之揪心。而在亂象頻發的當下,家長們試圖主動去建立一道道防線,去抵擋外界對孩子們的傷害。但事實上,生活中有太多常人難以想象的“漏洞”存在,讓風險不只是來自於外界,更有可能存在於家中。尤其是在隨著互聯網、技術的發展,越

一個盒子包裹另一個盒子當包裹盒子沒有設置border和padding時裏邊盒子的設置的上邊距起作用

就會 back 問題 flow ron code father 子div 分享 .father{width: 400px; height: 400px; background: pink; } .son{width: 200px; height: 200px; back

如果一個事務沒提交那麽它中間產生的數據變化在未提交之前寫入磁盤

.html sys 控制 鏈接 發現 更新 觸發 taf commit 1、如果一個事務還沒提交,那麽它中間產生的數據變化會不會在未提交之前寫入磁盤呢?回答:會,寫入不寫入磁盤和提交沒提交沒有關系commit 不一定會寫磁盤哦,要等到dwr進程的時候才會寫入磁盤吧,但com

新人報道刪除呀?

新人這麽可愛的姑娘你們舍得讓我走嗎?如果是這樣我就真的走了哈!本文出自 “秀妍網絡” 博客,謝絕轉載!新人報道,會不會被刪除呀?

AndroidP推出多項AI功能引發新的隱私擔憂?

AndroidP讓谷歌很“傷心”的是,相比蘋果iOS系統的統一,Android系統的碎片化態勢實在太嚴重了。就像已經發布一年多的Android O,其占有率僅有4.6%。主要是因為很多手機廠商都會根據Android系統進行“二度加工”,變成所謂的自家深度定制系統。不僅導致原生系統被摒棄,也讓很多新特性無法落地

“低頭”時代就此終結?

智能產品 eth ict 社交 play 找到 因此 峰值 aso 今日導讀 自從電子智能產品橫空出世,人們便邁入了“低頭族”的行列。寧可低頭看手機,也不願和面前的人談天。從零售到傳媒、從學習到娛樂,手機的存在更是全方位改變了信息傳播的方式和學習的方法,甚至改變了人們的社交

一道Shell編程趣味練習題看你

猜數字 用戶 數字遊戲 fff size 最終 roc itl 隨機 猜數字遊戲。首先讓系統隨機生成一個數字,給這個數字定一個範圍(1-60),讓用戶輸入猜的數字,對輸入進行判斷,如果不符合要求,就給予高或低的提示,猜對後則給出猜對用的次數,並根據猜的歷史給出擊敗了百分之多

一看就科目三靠邊停車30cm技巧!再也不怕停車了!

大於 後視鏡 自己 這一 fun 附近 .com img com 靠邊停車是科目三考試的最後一關,如果在這一關失敗,那之前所有的努力都功虧一簣了,你感覺吃不吃虧?就連我們自己平時開車,輪胎萬一與路邊石階刮蹭,就會造成不小的傷害。那麽靠邊停車時有哪些註意要點呢?請和小編一起往

女生做平面設計很辛苦?前途嗎?

src 提升 process 喜歡一個人 答案 工作 問題 .com 關於 女生做平面設計會不會很辛苦?女生適合從事這一行業嗎?有沒有前途?對於這些個問題,小編首先要強調的是,行業是沒有性別之分的,喜歡才是最重要的。女孩們可以換個角度去思考,或許更容易找到答案。 比如在擔心

git的程式設計師鄙視?

昨天一朋友在微信上問了我一個問題,我覺得很有趣,於是將本次聊天的內容分享給大家。   我朋友說,如果一個程式設計師不會使用 git,會不會被別人覺得低一個檔次?   事先宣告啊,這與公司技術棧無關,不要說有些公司只用 git 管理。對於公司而言,使用什麼版本控制有一定的考慮或者歷史

心理測試:選一輛嬰兒車吧?測你最近好事!

阿里巴巴官方釋出微博稱,連續幾日,一篇名為《阿里員工透露:馬總早移走 1200 億人民幣!網友:不愧是老師》的文章被有組織的進行惡意傳播。阿里巴巴官方釋出微博稱,連續幾日,一篇名為《阿里員工透露:馬總早移走 1200 億人民幣!網友:不愧是老師》的文章被有組織的進行惡意傳播。 對此,阿里表示,該文完全捏造事

想要年薪20萬先看這28個企業運維崗經典面試題

while循環 詭異 man 最大 冒號 esc 其他 主動模式和被動模式 程序 1、Linux如何掛載windows下的共享目錄? mount.cifs //IP地址/server /mnt/server -o user=administrator,password=1

綠水青山的小鎮很寂寞

請了一天的病假,終於可以安心的寫一點東西了。不知道是好還是壞,苦中作樂吧? 現在坐在電腦前邊,喝著中藥,挨著陽臺晒著太陽。生命的氣息的確是很厚重。     剛來北京的時候,地鐵上偷拍的一張。我們不一樣,每個人有不同的境遇。一樣的是每個人都在負重前行,還需要努力努力